diff --git a/manifest.yml b/manifest.yml index 3dad34c8a..bf417410c 100644 --- a/manifest.yml +++ b/manifest.yml @@ -220,15 +220,14 @@ dependencies: source: https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.7.tar.gz source_sha256: 23815a6d095696f7919090fdc3e2f9459b2c83d57224b2e446ce1f5f7333ef36 - name: rubygems - version: 3.6.8 - uri: https://buildpacks.cloudfoundry.org/dependencies/rubygems/rubygems_3.6.8_linux_noarch_any-stack_7a02eb5e.tgz - sha256: 7a02eb5e5cf4ed6ad6a4245babf69f1f4c6acc1cbdf6d126dee8bf73dca7f8de + version: 4.0.22 + uri: https://buildpacks.cloudfoundry.org/dependencies/rubygems/rubygems_4.0.22_linux_noarch_any-stack_b5f29b2f.tgz + sha256: b5f29b2f5653d67d6b6319d1fad163b1fa1e3434abfadcfa348d76904b960fbb cf_stacks: - cflinuxfs4 - cflinuxfs5 - - cflinuxfs3 - source: https://rubygems.org/rubygems/rubygems-3.6.8.tgz - source_sha256: da5340b42ba3ddc5ede4a6b948ffa5b409d48cb119e2937e27e4c0b13bf9c390 + source: https://rubygems.org/rubygems/rubygems-4.0.22.tgz + source_sha256: e7e58e5b95156ce7419f7d3b2ae9ecc4f7fe7a4c61a5837f90c507206d8cc226 - name: yarn version: 1.22.22 uri: https://buildpacks.cloudfoundry.org/dependencies/yarn/yarn_1.22.22_linux_noarch_any-stack_b6132b86.tgz diff --git a/src/ruby/integration/default_test.go b/src/ruby/integration/default_test.go index aa370d022..b4c34ba3b 100644 --- a/src/ruby/integration/default_test.go +++ b/src/ruby/integration/default_test.go @@ -82,7 +82,13 @@ func testDefault(platform switchblade.Platform, fixtures string) func(*testing.T Execute(name, filepath.Join(fixtures, "default", "vendor_bundle")) Expect(err).NotTo(HaveOccurred()) - Eventually(deployment).Should(Serve(ContainSubstring("Healthy"))) + // The default 20s Eventually timeout has been observed to + // intermittently race with the Docker platform backend + // under parallel CI load (container reports started before + // the app has actually bound its port). Give this more + // headroom, matching the precedent set for the JRuby + // fixture (#1140). + Eventually(deployment, 90*time.Second, 2*time.Second).Should(Serve(ContainSubstring("Healthy"))) }) }) @@ -95,7 +101,9 @@ func testDefault(platform switchblade.Platform, fixtures string) func(*testing.T Execute(name, filepath.Join(fixtures, "default", "custom_gemfile")) Expect(err).NotTo(HaveOccurred()) - Eventually(deployment).Should(Serve(ContainSubstring("Hello World"))) + // See the "vendor bundle" test above for why this has an + // extended timeout. + Eventually(deployment, 90*time.Second, 2*time.Second).Should(Serve(ContainSubstring("Hello World"))) }) }) diff --git a/src/ruby/integration/offline_test.go b/src/ruby/integration/offline_test.go index b1e204671..bc0505652 100644 --- a/src/ruby/integration/offline_test.go +++ b/src/ruby/integration/offline_test.go @@ -3,6 +3,7 @@ package integration_test import ( "path/filepath" "testing" + "time" "github.com/cloudfoundry/switchblade" "github.com/sclevine/spec" @@ -38,7 +39,14 @@ func testOffline(platform switchblade.Platform, fixtures string) func(*testing.T Execute(name, filepath.Join(fixtures, "default", "vendor_cache")) Expect(err).NotTo(HaveOccurred()) - Eventually(deployment).Should(Serve(ContainSubstring("Healthy"))) + // The default 20s Eventually timeout has been observed to + // intermittently race with the Docker platform backend under + // parallel CI load: the container reports as started before the + // app process inside has actually finished booting and bound + // its port, producing a raw "connection refused" at the 20s + // mark rather than a graceful retry. Give this more headroom, + // matching the precedent set for the JRuby fixture (#1140). + Eventually(deployment, 90*time.Second, 2*time.Second).Should(Serve(ContainSubstring("Healthy"))) }) } }