summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md4
-rw-r--r--Dockerfile5
-rw-r--r--Gemfile.lock2
-rwxr-xr-xbin/docker-build10
-rw-r--r--lib/license/management/version.rb2
-rw-r--r--spec/fixtures/build.gradle.kts11
-rw-r--r--spec/integration/java/gradle_spec.rb26
-rw-r--r--spec/spec_helper.rb2
-rw-r--r--spec/support/fixture_file_helper.rb5
9 files changed, 62 insertions, 5 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/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/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/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
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
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 fc52c72..ddde21c 100644
--- a/spec/integration/java/gradle_spec.rb
+++ b/spec/integration/java/gradle_spec.rb
@@ -47,4 +47,30 @@ plugins {
end
end
end
+
+ [
+ '6.2',
+ '5.6',
+ '4.9',
+ '3.5',
+ '2.9',
+ '1.9',
+ ].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) { fixture_file_content("build.gradle.kts") }
+
+ 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(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
end
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