From 16df56da33ffcb172f4d4ef9fd7d59844210c8b1 Mon Sep 17 00:00:00 2001 From: Manuel Fuchs Date: Wed, 29 Jan 2025 14:29:45 +0100 Subject: [PATCH] WIP --- test/spec/clojure_smoke_spec.rb | 5 ++++- test/spec/java_gradle_smoke_spec.rb | 5 ++++- test/spec/java_maven_smoke_spec.rb | 5 ++++- test/spec/java_spec.rb | 2 ++ test/spec/provided_jdk_spec.rb | 33 +++++++++++++++++++++++++++++ test/spec/scala_smoke_spec.rb | 5 ++++- 6 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 test/spec/provided_jdk_spec.rb diff --git a/test/spec/clojure_smoke_spec.rb b/test/spec/clojure_smoke_spec.rb index ca3597b..a17f2c6 100644 --- a/test/spec/clojure_smoke_spec.rb +++ b/test/spec/clojure_smoke_spec.rb @@ -3,7 +3,10 @@ require_relative 'spec_helper' # Test both the released version of the Clojure buildpack as well as the code on main -clojure_buildpacks = %w[https://github.com/heroku/heroku-buildpack-clojure#main https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/clojure.tgz] +clojure_buildpacks = %w[ + https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/clojure.tgz + https://github.com/heroku/heroku-buildpack-clojure#main +] RSpec.describe 'Usage from Heroku\'s Clojure buildpack' do clojure_buildpacks.each do |clojure_buildpack| diff --git a/test/spec/java_gradle_smoke_spec.rb b/test/spec/java_gradle_smoke_spec.rb index aadc399..79a2a50 100644 --- a/test/spec/java_gradle_smoke_spec.rb +++ b/test/spec/java_gradle_smoke_spec.rb @@ -3,7 +3,10 @@ require_relative 'spec_helper' # Test both the released version of the Gradle buildpack as well as the code on main -gradle_buildpacks = %w[https://github.com/heroku/heroku-buildpack-gradle#main https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/gradle.tgz] +gradle_buildpacks = %w[ + https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/gradle.tgz + https://github.com/heroku/heroku-buildpack-gradle#main +] RSpec.describe 'Usage from Heroku\'s Gradle buildpack' do gradle_buildpacks.each do |gradle_buildpack| diff --git a/test/spec/java_maven_smoke_spec.rb b/test/spec/java_maven_smoke_spec.rb index 2253b84..bea468c 100644 --- a/test/spec/java_maven_smoke_spec.rb +++ b/test/spec/java_maven_smoke_spec.rb @@ -3,7 +3,10 @@ require_relative 'spec_helper' # Test both the released version of the Maven buildpack as well as the code on main -maven_buildpacks = %w[https://github.com/heroku/heroku-buildpack-java#main https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/java.tgz] +maven_buildpacks = %w[ + https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/java.tgz + https://github.com/heroku/heroku-buildpack-java#main +] RSpec.describe 'Usage from Heroku\'s Maven buildpack' do maven_buildpacks.each do |maven_buildpack| diff --git a/test/spec/java_spec.rb b/test/spec/java_spec.rb index 41db4ac..abefc1c 100644 --- a/test/spec/java_spec.rb +++ b/test/spec/java_spec.rb @@ -32,6 +32,8 @@ '23' => 'OpenJDK Runtime Environment Zulu23.30+13-CA (build 23.0.1+11)', 'heroku-21' => 'OpenJDK Runtime Environment (build 21.0.5+11)', 'zulu-21' => 'OpenJDK Runtime Environment Zulu21.38+21-CA (build 21.0.5+11-LTS)', + # Ensure that slightly incorrect version strings work + ' 21 ' => 'OpenJDK Runtime Environment Zulu21.38+21-CA (build 21.0.5+11-LTS)', }, }.freeze diff --git a/test/spec/provided_jdk_spec.rb b/test/spec/provided_jdk_spec.rb new file mode 100644 index 0000000..9c6d210 --- /dev/null +++ b/test/spec/provided_jdk_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require_relative 'spec_helper' + +RSpec.describe 'using an application provided JDK' do + it 'skips installing OpenJDK and outputs the correct message' do + app = Hatchet::Runner.new('empty') + + app.before_deploy do + # Create a system.properties file to ensure the contents + # are ignored when a custom JDK is present. + set_java_version(Dir.pwd, '21') + + # Install Amazon Corretto to the .jdk directory of the application + url = 'https://corretto.aws/downloads/resources/21.0.6.7.1/amazon-corretto-21.0.6.7.1-linux-x64.tar.gz' + tarball_name = 'corretto.tar.gz' + jdk_dir = '.jdk' + + system("curl --silent -o #{tarball_name} --fail '#{url}'") + system("mkdir #{jdk_dir}") + system("tar --strip-components=1 -C #{jdk_dir} -xzf #{tarball_name}") + end + + app.deploy do + expect(app.run('.jdk/bin/java -version')).to include('OpenJDK Runtime Environment Corretto-21.0.6.7.1') + + expect(app.output).to match(Regexp.new(<<~REGEX, Regexp::MULTILINE)) + remote: -----> JVM Common app detected + remote: -----> Using provided JDK + REGEX + end + end +end diff --git a/test/spec/scala_smoke_spec.rb b/test/spec/scala_smoke_spec.rb index 92e670a..6079e4f 100644 --- a/test/spec/scala_smoke_spec.rb +++ b/test/spec/scala_smoke_spec.rb @@ -3,7 +3,10 @@ require_relative 'spec_helper' # Test both the released version of the Scala buildpack as well as the code on main -scala_buildpacks = %w[https://github.com/heroku/heroku-buildpack-scala#main https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/scala.tgz] +scala_buildpacks = %w[ + https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/scala.tgz + https://github.com/heroku/heroku-buildpack-scala#main +] RSpec.describe 'Usage from Heroku\'s Scala buildpack' do scala_buildpacks.each do |scala_buildpack|