From 2e61e862b24918fb341154a4ad53eb7424d7976d Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 13:49:09 -0700 Subject: Add spec for java library with kotlin build file --- spec/integration/java/gradle_spec.rb | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index fc52c72..6823ce1 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -47,4 +47,51 @@ plugins { end end end + + context 'when scanning a gradle project that uses kotlin' do + let(:build_file_content) do + <<~GRADLE +plugins { + `java-library` +} +repositories { + jcenter() +} +dependencies { + api("org.apache.commons:commons-math3:3.6.1") + implementation("com.google.guava:guava:28.1-jre") + testImplementation("junit:junit:4.12") +} + GRADLE + end + let(:settings_file_content) { 'rootProject.name = "example"' } + + it 'scans a gradle project' do + runner.add_file('build.gradle.kts', build_file_content) + runner.add_file('settings.gradle.kts', settings_file_content) + + report = runner.scan + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end + end + + context "when scanning a v6 gradle project" do + it 'scans a gradle project' do + content = <<~GRADLE + GRADLE + runner.add_file('build.gradle', content) + + report = runner.scan + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end + end + context "when scanning a v5 gradle project" + context "when scanning a v4 gradle project" + context "when scanning a v3 gradle project" + context "when scanning a v2 gradle project" + context "when scanning a v1 gradle project" end -- cgit v1.2.3 From f945654789655429566414c91b4d00dcd658cabc Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 14:35:49 -0700 Subject: Add specs to test each version of gradle --- Dockerfile | 5 +++- spec/integration/java/gradle_spec.rb | 53 +++++++++++++++--------------------- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/Dockerfile b/Dockerfile index 223e802..68d45ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,13 +23,16 @@ RUN add-apt-repository ppa:ondrej/php -y && apt-get update -y && \ echo 'conan' >> $HOME/.default-python-packages && \ echo '\n. $HOME/.asdf/asdf.sh' >> $HOME/.bashrc && \ echo 'legacy_version_file = yes' > $HOME/.asdfrc && \ + asdf plugin-add gradle && \ asdf plugin-add java && \ asdf plugin-add python && \ + echo 'gradle system' >> $HOME/.tool-versions && \ echo 'java adopt-openjdk-8u242-b08 adopt-openjdk-11.0.6+10' >> $HOME/.tool-versions && \ echo 'python 3.8.1 3.5.9 2.7.17' >> $HOME/.tool-versions && \ asdf install && \ - asdf global python 3.8.1 && \ + asdf global gradle system && \ asdf global java adopt-openjdk-8u242-b08 && \ + asdf global python 3.8.1 && \ asdf reshim && \ bash -lc "gem install --no-document 'bundler:~> 1.7' 'bundler:~> 2.0'" && \ rm -fr /opt/jdk* && \ diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index 6823ce1..7b3b4bf 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -48,9 +48,17 @@ plugins { end end - context 'when scanning a gradle project that uses kotlin' do - let(:build_file_content) do - <<~GRADLE + [ + '6.2', + '5.6', + '4.9', + '3.5', + '2.9', + '1.9', + ].each do |version| + context "when scanning a gradle (v#{version}) project that uses a kotlin build script" do + let(:build_file_content) do + <<~KOTLIN plugins { `java-library` } @@ -62,36 +70,19 @@ dependencies { implementation("com.google.guava:guava:28.1-jre") testImplementation("junit:junit:4.12") } - GRADLE - end - let(:settings_file_content) { 'rootProject.name = "example"' } - - it 'scans a gradle project' do - runner.add_file('build.gradle.kts', build_file_content) - runner.add_file('settings.gradle.kts', settings_file_content) - - report = runner.scan - expect(report).to match_schema(version: '2.0') - expect(report[:licenses]).to be_empty - expect(report[:dependencies]).to be_empty - end - end + KOTLIN + end - context "when scanning a v6 gradle project" do - it 'scans a gradle project' do - content = <<~GRADLE - GRADLE - runner.add_file('build.gradle', content) + it 'scans a gradle project' do + runner.add_file('build.gradle.kts', build_file_content) + runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') + runner.add_file('.tool-versions', "gradle #{version}") - report = runner.scan - expect(report).to match_schema(version: '2.0') - expect(report[:licenses]).to be_empty - expect(report[:dependencies]).to be_empty + report = runner.scan + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end end end - context "when scanning a v5 gradle project" - context "when scanning a v4 gradle project" - context "when scanning a v3 gradle project" - context "when scanning a v2 gradle project" - context "when scanning a v1 gradle project" end -- cgit v1.2.3 From 7ce136081df3b6d60d010b9fc66f313ea87f992f Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 15:11:13 -0700 Subject: Test gradle plugin against different versions of Java --- spec/integration/java/gradle_spec.rb | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index 7b3b4bf..f9e7bcc 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -55,10 +55,11 @@ plugins { '3.5', '2.9', '1.9', - ].each do |version| - context "when scanning a gradle (v#{version}) project that uses a kotlin build script" do - let(:build_file_content) do - <<~KOTLIN + ].each do |gradle_version| + %w{8 11}.each do |java_version| + context "when scanning a gradle (v#{gradle_version}) project that uses a kotlin build script" do + let(:build_file_content) do + <<~KOTLIN plugins { `java-library` } @@ -70,18 +71,19 @@ dependencies { implementation("com.google.guava:guava:28.1-jre") testImplementation("junit:junit:4.12") } - KOTLIN - end + KOTLIN + end - it 'scans a gradle project' do - runner.add_file('build.gradle.kts', build_file_content) - runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') - runner.add_file('.tool-versions', "gradle #{version}") + it 'scans a gradle project' do + runner.add_file('build.gradle.kts', build_file_content) + runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') + runner.add_file('.tool-versions', "gradle #{gradle_version}") - report = runner.scan - expect(report).to match_schema(version: '2.0') - expect(report[:licenses]).to be_empty - expect(report[:dependencies]).to be_empty + report = runner.scan(env: { 'LM_JAVA_VERSION' => java_version }) + expect(report).to match_schema(version: '2.0') + expect(report[:licenses]).to be_empty + expect(report[:dependencies]).to be_empty + end end end end -- cgit v1.2.3 From 856c2e8429696a94b116c28e5c20687f71da197e Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 15:24:21 -0700 Subject: Extract fixture file helper --- spec/fixtures/build.gradle.kts | 11 +++++++++++ spec/integration/java/gradle_spec.rb | 16 +--------------- spec/spec_helper.rb | 2 ++ spec/support/fixture_file_helper.rb | 5 +++++ 4 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 spec/fixtures/build.gradle.kts create mode 100644 spec/support/fixture_file_helper.rb diff --git a/spec/fixtures/build.gradle.kts b/spec/fixtures/build.gradle.kts new file mode 100644 index 0000000..494fc8b --- /dev/null +++ b/spec/fixtures/build.gradle.kts @@ -0,0 +1,11 @@ +plugins { + `java-library` +} +repositories { + jcenter() +} +dependencies { + api("org.apache.commons:commons-math3:3.6.1") + implementation("com.google.guava:guava:28.1-jre") + testImplementation("junit:junit:4.12") +} diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index f9e7bcc..ddde21c 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -58,21 +58,7 @@ plugins { ].each do |gradle_version| %w{8 11}.each do |java_version| context "when scanning a gradle (v#{gradle_version}) project that uses a kotlin build script" do - let(:build_file_content) do - <<~KOTLIN -plugins { - `java-library` -} -repositories { - jcenter() -} -dependencies { - api("org.apache.commons:commons-math3:3.6.1") - implementation("com.google.guava:guava:28.1-jre") - testImplementation("junit:junit:4.12") -} - KOTLIN - end + let(:build_file_content) { fixture_file_content("build.gradle.kts") } it 'scans a gradle project' do runner.add_file('build.gradle.kts', build_file_content) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1889335..15c9dad 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,10 +2,12 @@ require 'license/management' require 'json' require 'securerandom' require 'json-schema' +require 'support/fixture_file_helper' require 'support/integration_test_helper' require 'support/matchers' RSpec.configure do |config| + config.include FixtureFileHelper config.include IntegrationTestHelper, type: :integration config.define_derived_metadata(file_path: /\/spec\/integration/) do |metadata| metadata[:type] = :integration diff --git a/spec/support/fixture_file_helper.rb b/spec/support/fixture_file_helper.rb new file mode 100644 index 0000000..c98b98a --- /dev/null +++ b/spec/support/fixture_file_helper.rb @@ -0,0 +1,5 @@ +module FixtureFileHelper + def fixture_file_content(path) + IO.read(License::Management.root.join("spec/fixtures/#{path}")) + end +end -- cgit v1.2.3 From 0d8333b37ea26a9940ca6e8a78713d55135a6053 Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 15:29:30 -0700 Subject: Add CHANGELOG entry --- CHANGELOG.md | 4 ++++ Gemfile.lock | 2 +- lib/license/management/version.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cebfd1..dac69aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # GitLab License management changelog +## v2.7.0 + +- Install project specific versions of gradle at scan time. (!118) + ## v2.6.0 - Upgrade to license finder 6.0.0 docker image (!115) diff --git a/Gemfile.lock b/Gemfile.lock index 0dc8334..740baeb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - license-management (2.6.0) + license-management (2.7.0) license_finder (~> 6.0.0) GEM diff --git a/lib/license/management/version.rb b/lib/license/management/version.rb index 5623e68..7a3cc03 100644 --- a/lib/license/management/version.rb +++ b/lib/license/management/version.rb @@ -2,6 +2,6 @@ module License module Management - VERSION = '2.6.0' + VERSION = '2.7.0' end end -- cgit v1.2.3 From b3563987c1c0aaa37b827713a291b53bd6048a4b Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 26 Feb 2020 15:57:48 -0700 Subject: Check if docker is installed --- bin/docker-build | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/docker-build b/bin/docker-build index 428dda8..1751c74 100755 --- a/bin/docker-build +++ b/bin/docker-build @@ -4,6 +4,12 @@ set -e cd "$(dirname "$0")/.." -IMAGE_NAME=${IMAGE_NAME:-$(basename "$PWD"):latest} +if command -v docker; then + IMAGE_NAME=${IMAGE_NAME:-$(basename "$PWD"):latest} + + docker build . -t "$IMAGE_NAME" --pull +else + echo "Install docker: https://docs.docker.com/engine/installation/" + exit 1 +fi -docker build . -t "$IMAGE_NAME" --pull -- cgit v1.2.3