diff options
| author | mo khan <mo.khan@gmail.com> | 2020-03-05 18:04:55 -0700 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-03-05 18:04:55 -0700 |
| commit | 06cf54374ff826b0fec62bb50e52a38e46c8a81d (patch) | |
| tree | c483bfd3a9502fe64b47a8e57c33eca7a33a89f5 | |
| parent | 054f550130d1e2eb91615bde3d8b00f12072c7d1 (diff) | |
Install gem into pkg dir
| -rw-r--r-- | Dockerfile | 2 | ||||
| -rwxr-xr-x | bin/docker-test | 12 | ||||
| -rwxr-xr-x | run.sh | 97 |
3 files changed, 55 insertions, 56 deletions
@@ -23,6 +23,6 @@ RUN bash /root/install.sh FROM tools-builder ENV LM_HOME=/opt/license-management -COPY --from=gem-builder /opt/license-management/*.gem $LM_HOME/ +COPY --from=gem-builder /opt/license-management/*.gem $LM_HOME/pkg/ COPY run.sh / ENTRYPOINT ["/run.sh"] diff --git a/bin/docker-test b/bin/docker-test index e6f02ad..cfaf049 100755 --- a/bin/docker-test +++ b/bin/docker-test @@ -1,12 +1,18 @@ #!/bin/sh -set -e +set -eu cd "$(dirname "$0")/.." PROJECT_PATH="$1" +echo "Scanning $PROJECT_PATH" -if [ -z "$LM_HOME" ]; then +if [ -n "${LM_HOME:-}" ]; then + gem build ./*.gemspec + mkdir -p pkg/ + mv *.gem pkg/ + ./run.sh analyze "$PROJECT_PATH" +else export IMAGE_NAME=${IMAGE_NAME:-$(basename "$PWD"):latest} docker run --rm \ @@ -17,6 +23,4 @@ if [ -z "$LM_HOME" ]; then --env MAVEN_CLI_OPTS \ --volume "$PROJECT_PATH":/code \ "$IMAGE_NAME" analyze /code -else - /run.sh analyze "$PROJECT_PATH" fi @@ -5,12 +5,11 @@ set -euo pipefail BUNDLE_JOBS="$(nproc)" export BUNDLE_JOBS export BUNDLE_PATH="vendor/bundle" -export BUNDLE_WITHOUT="development test" +export BUNDLE_WITHOUT="development:test" export DOTNET_CLI_TELEMETRY_OPTOUT=1 export HISTFILESIZE=0 export HISTSIZE=0 export LICENSE_FINDER_CLI_OPTS=${LICENSE_FINDER_CLI_OPTS:-'--no-debug'} -export LICENSE_FINDER_PYTHON_VERSION="--python-version=3" export LM_REPORT_FILE='gl-license-management-report.json' export PREPARE="--prepare-no-fail" export RUBY_GC_HEAP_INIT_SLOTS=800000 @@ -18,51 +17,41 @@ export RUBY_GC_MALLOC_LIMIT=79000000 export RUBY_HEAP_FREE_MIN=100000 export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1 export RUBY_HEAP_SLOTS_INCREMENT=400000 - -if [[ -n ${LM_PYTHON_VERSION:-} ]]; then - MAJOR_VERSION=$(echo "$LM_PYTHON_VERSION" | cut -d'.' -f1) - switch_to python "$MAJOR_VERSION" - python --version - pip --version - export LICENSE_FINDER_PYTHON_VERSION="--python-version=$MAJOR_VERSION" -fi - -switch_to java "adopt-openjdk-${LM_JAVA_VERSION:-8}" -# shellcheck source=/dev/null -. "$ASDF_DATA_DIR/plugins/java/set-java-home.sh" +export LM_DEBUG=${LM_DEBUG:-} function debug_env() { pwd ls -alh env | sort asdf current + + # ruby ruby -v gem --version bundle --version + bundle config + + # python + python --version + pip --version } function scan_project() { - prepare="$1" - gem install --quiet --silent "$LM_HOME/*.gem" + gem install --quiet --silent "$LM_HOME/pkg/*.gem" license_management ignored_groups add development license_management ignored_groups add test - options=("${prepare}" '--format=json' "--save=${LM_REPORT_FILE}" "${LICENSE_FINDER_PYTHON_VERSION}" "${LICENSE_FINDER_CLI_OPTS}") - echo license_management report "${options[@]}" - license_management report "${options[@]}" + echo license_management report "$@" + license_management report "$@" +} + +function prepare_ruby() { + [[ -f Gemfile ]] && bundle install } function prepare_javascript() { if [ -f package.json ]; then - if [ -f package-lock.json ] && [ ! -f yarn.lock ] ; then - echo "Installing npm packages with npm ci" - npm ci - PREPARE="--no-prepare" - fi - if [ ! -d node_modules ]; then - echo "Installing yarn packages" - yarn install --ignore-engines --ignore-scripts - PREPARE="--no-prepare" - fi + [[ -f package-lock.json ]] && [[ ! -f yarn.lock ]] && npm ci + [[ ! -d node_modules ]] && yarn install --ignore-engines --ignore-scripts fi } @@ -71,40 +60,32 @@ function prepare_golang() { if [[ ( ! -f glide.lock ) && ( ! -f vendor/manifest ) && (! -f Gopkg.lock ) && (! -f go.mod ) ]]; then # Only install deps if not using glide, govendor or dep # Symlink the project into GOPATH to allow fetching dependencies. - ln -sf "$(realpath "$project_path")" /gopath/src/app + ln -sf "$(realpath "$PWD")" /gopath/src/app pushd /gopath/src/app > /dev/null go get || true - PREPARE="--no-prepare" fi fi } function prepare_java() { - if [ -f pom.xml ]; then - mvn install "${MAVEN_CLI_OPTS:--DskipTests}" - PREPARE="--no-prepare" - fi - if [ -f build.gradle ] && [ ! -f gradlew ] ; then - gradle build "${GRADLE_CLI_OPTS:"-x test"}" - PREPARE="--no-prepare" - fi + [[ -f pom.xml ]] && mvn install "${MAVEN_CLI_OPTS:--DskipTests}" + [[ -f build.gradle ]] && [[ ! -f gradlew ]] && gradle build "${GRADLE_CLI_OPTS:"-x test"}" } function prepare_dotnet() { - if [[ $(ls ./*.sln 2> /dev/null) ]]; then - LICENSE_FINDER_CLI_OPTS="--recursive=true $LICENSE_FINDER_CLI_OPTS" - fi + [[ $(ls ./*.sln 2> /dev/null) ]] && LICENSE_FINDER_CLI_OPTS="--recursive=true $LICENSE_FINDER_CLI_OPTS" } function prepare_project() { - project_path=$1 - cd "$project_path" - if [[ -z "${SETUP_CMD-}" ]]; then + cd "$1" + if [[ -z ${SETUP_CMD:-} ]]; then asdf install - prepare_javascript - prepare_golang - prepare_java - prepare_dotnet + + prepare_ruby || true + prepare_javascript || true + prepare_golang || true + prepare_java || true + prepare_dotnet || true else echo "Running '${SETUP_CMD}' to install project dependencies..." "${SETUP_CMD[@]}" @@ -112,6 +93,20 @@ function prepare_project() { fi } +function major_version_from() { + echo "$1" | cut -d'.' -f1 +} + +switch_to python "$(major_version_from "${LM_PYTHON_VERSION:-3}")" + +switch_to java "adopt-openjdk-${LM_JAVA_VERSION:-8}" +# shellcheck source=/dev/null +. "$ASDF_DATA_DIR/plugins/java/set-java-home.sh" + prepare_project "$2" -debug_env -scan_project "$PREPARE" +[[ -n $LM_DEBUG ]] && debug_env +scan_project "$PREPARE" \ + --format=json \ + --save="${LM_REPORT_FILE}" \ + --python-version="$(major_version_from "$(python --version | awk '{ print $2 }')")" \ + $LICENSE_FINDER_CLI_OPTS |
