diff --git a/.final_builds/packages/ruby-4.0/index.yml b/.final_builds/packages/ruby-4.0/index.yml new file mode 100644 index 0000000000..43d8c97063 --- /dev/null +++ b/.final_builds/packages/ruby-4.0/index.yml @@ -0,0 +1,10 @@ +builds: + 1c57129111fddc1177f567ea243bb538a8087297eb916e61444e2fb27408b25d: + version: 1c57129111fddc1177f567ea243bb538a8087297eb916e61444e2fb27408b25d + blobstore_id: 35e7e099-6aa1-4def-5131-b4d40906479b + sha1: sha256:5962350916c57b180cc2453aa098d868ee17cef9610dabe8257fe1989779c29a + e33c6fb21a7a9e5cbf9df3cc9a23ee245e38227d64739abf95c7b9622866b0a8: + version: e33c6fb21a7a9e5cbf9df3cc9a23ee245e38227d64739abf95c7b9622866b0a8 + blobstore_id: 514f174a-60a2-4e24-52cf-562f7217296d + sha1: sha256:7b55b7b74effac308b3fec4e2b915142686182d667445ab667ee02f426100700 +format-version: "2" diff --git a/.final_builds/packages/rust-1-linux/index.yml b/.final_builds/packages/rust-1-linux/index.yml index be264b293e..38cb3cabe3 100644 --- a/.final_builds/packages/rust-1-linux/index.yml +++ b/.final_builds/packages/rust-1-linux/index.yml @@ -1,6 +1,6 @@ builds: 9d04c35339688bfab109d4685fa9adad9d4a87050c73850e180d95172cbf13a0: version: 9d04c35339688bfab109d4685fa9adad9d4a87050c73850e180d95172cbf13a0 - blobstore_id: 0b11647b-eb41-42c2-74cc-17a1471a6009 + blobstore_id: 7a389dcc-7459-481e-6bb3-a9c0ff18930c sha1: sha256:495c7122dfe102d7f994e8c00dd0e149235870eda2e6f00468dac750f2802609 format-version: "2" diff --git a/.ruby-version b/.ruby-version index 4d541eb209..d13e837c8e 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.12 +4.0.6 diff --git a/jobs/blobstore_benchmark/spec b/jobs/blobstore_benchmark/spec index 0a6218f3ef..4700e8ce60 100644 --- a/jobs/blobstore_benchmark/spec +++ b/jobs/blobstore_benchmark/spec @@ -16,7 +16,7 @@ templates: packages: - capi_utils - cloud_controller_ng - - ruby-3.3 + - ruby-4.0 - jemalloc - storage-cli - mariadb_connector_c diff --git a/jobs/cc_deployment_updater/spec b/jobs/cc_deployment_updater/spec index 2188d22e24..ae4c3152f3 100644 --- a/jobs/cc_deployment_updater/spec +++ b/jobs/cc_deployment_updater/spec @@ -42,7 +42,7 @@ packages: - libpq - jemalloc - mariadb_connector_c - - ruby-3.3 + - ruby-4.0 consumes: - name: database diff --git a/jobs/cloud_controller_clock/spec b/jobs/cloud_controller_clock/spec index 467ae784ad..34d816922c 100644 --- a/jobs/cloud_controller_clock/spec +++ b/jobs/cloud_controller_clock/spec @@ -43,7 +43,7 @@ packages: - libpq - jemalloc - mariadb_connector_c - - ruby-3.3 + - ruby-4.0 consumes: - name: database diff --git a/jobs/cloud_controller_ng/spec b/jobs/cloud_controller_ng/spec index 1c7c2a1981..ba7e1b0d25 100644 --- a/jobs/cloud_controller_ng/spec +++ b/jobs/cloud_controller_ng/spec @@ -77,7 +77,7 @@ packages: - libpq - jemalloc - mariadb_connector_c - - ruby-3.3 + - ruby-4.0 provides: - name: cloud_controller diff --git a/jobs/cloud_controller_ng/templates/shutdown_drain.rb.erb b/jobs/cloud_controller_ng/templates/shutdown_drain.rb.erb index 9e94ee56cd..f0cea2e8e6 100644 --- a/jobs/cloud_controller_ng/templates/shutdown_drain.rb.erb +++ b/jobs/cloud_controller_ng/templates/shutdown_drain.rb.erb @@ -1,4 +1,4 @@ -#!/var/vcap/packages/ruby-3.3/bin/ruby --disable-all +#!/var/vcap/packages/ruby-4.0/bin/ruby --disable-all $LOAD_PATH.unshift('/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/app') $LOAD_PATH.unshift('/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib') diff --git a/jobs/cloud_controller_worker/spec b/jobs/cloud_controller_worker/spec index 68d3cbf849..855d6743db 100644 --- a/jobs/cloud_controller_worker/spec +++ b/jobs/cloud_controller_worker/spec @@ -51,7 +51,7 @@ packages: - libpq - jemalloc - mariadb_connector_c - - ruby-3.3 + - ruby-4.0 consumes: - name: database diff --git a/jobs/cloud_controller_worker/templates/shutdown_drain.rb.erb b/jobs/cloud_controller_worker/templates/shutdown_drain.rb.erb index 47019599bf..e0aeb5ee18 100644 --- a/jobs/cloud_controller_worker/templates/shutdown_drain.rb.erb +++ b/jobs/cloud_controller_worker/templates/shutdown_drain.rb.erb @@ -1,4 +1,4 @@ -#!/var/vcap/packages/ruby-3.3/bin/ruby --disable-all +#!/var/vcap/packages/ruby-4.0/bin/ruby --disable-all $LOAD_PATH.unshift('/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/app') $LOAD_PATH.unshift('/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib') diff --git a/jobs/rotate_cc_database_key/spec b/jobs/rotate_cc_database_key/spec index a449614bce..ab716a81f1 100644 --- a/jobs/rotate_cc_database_key/spec +++ b/jobs/rotate_cc_database_key/spec @@ -16,7 +16,7 @@ packages: - libpq - jemalloc - mariadb_connector_c - - ruby-3.3 + - ruby-4.0 consumes: - name: cloud_controller_db diff --git a/packages/cloud_controller_ng/packaging b/packages/cloud_controller_ng/packaging index bdfec80841..9344859f97 100644 --- a/packages/cloud_controller_ng/packaging +++ b/packages/cloud_controller_ng/packaging @@ -1,7 +1,7 @@ set -e -x # shellcheck disable=1090 -source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/ruby-3.3/bosh/compile.env" +source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/ruby-4.0/bosh/compile.env" cp -a * ${BOSH_INSTALL_TARGET} cd ${BOSH_INSTALL_TARGET}/cloud_controller_ng @@ -15,7 +15,8 @@ gem install --local vendor/cache/bundler-${BUNDLER_VERSION}.gem bundle config build.pg --with-pg-lib=$libpq_dir/lib --with-pg-include=$libpq_dir/include bundle config build.mysql2 --with-mysql-config=$mariadb_dir/bin/mariadb_config-wrapper.sh -bosh_bundle_local --deployment +bundle config set deployment true +bosh_bundle_local # remove world-writable permissions on files if a gem has them chmod -R o-w ../gem_home diff --git a/packages/cloud_controller_ng/spec b/packages/cloud_controller_ng/spec index 06dc8affcd..b902fd5f1e 100644 --- a/packages/cloud_controller_ng/spec +++ b/packages/cloud_controller_ng/spec @@ -3,7 +3,7 @@ name: cloud_controller_ng dependencies: - libpq - mariadb_connector_c -- ruby-3.3 +- ruby-4.0 files: - cloud_controller_ng/{.ruby-version,Rakefile,Gemfile,Gemfile.lock} diff --git a/packages/nginx_newrelic_plugin/packaging b/packages/nginx_newrelic_plugin/packaging index bc40cad8d3..b3c9181188 100644 --- a/packages/nginx_newrelic_plugin/packaging +++ b/packages/nginx_newrelic_plugin/packaging @@ -1,7 +1,7 @@ set -ex # shellcheck disable=1090 -source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/ruby-3.3/bosh/compile.env" +source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/ruby-4.0/bosh/compile.env" echo "Installing nginx newrelic plugin" @@ -9,5 +9,6 @@ cp -a nginx/newrelic_nginx_agent/* ${BOSH_INSTALL_TARGET} # Forcing an update to get BOSH to recompile this package pushd ${BOSH_INSTALL_TARGET} - bosh_bundle_local --deployment + bundle config set deployment true + bosh_bundle_local popd diff --git a/packages/nginx_newrelic_plugin/spec b/packages/nginx_newrelic_plugin/spec index 3464fec039..a648b0a865 100644 --- a/packages/nginx_newrelic_plugin/spec +++ b/packages/nginx_newrelic_plugin/spec @@ -1,6 +1,6 @@ --- name: nginx_newrelic_plugin dependencies: -- ruby-3.3 +- ruby-4.0 files: - nginx/newrelic_nginx_agent-1.2.1.tar.gz diff --git a/packages/ruby-3.3/spec.lock b/packages/ruby-3.3/spec.lock deleted file mode 100644 index bb7de8030b..0000000000 --- a/packages/ruby-3.3/spec.lock +++ /dev/null @@ -1,4 +0,0 @@ -name: ruby-3.3 -fingerprint: 25a461ce712b47ca8115da90a28a33fb30e5956c5498a076601154f256e56625 -dependencies: -- rust-1-linux diff --git a/packages/ruby-4.0/spec.lock b/packages/ruby-4.0/spec.lock new file mode 100644 index 0000000000..b01645d75c --- /dev/null +++ b/packages/ruby-4.0/spec.lock @@ -0,0 +1,4 @@ +name: ruby-4.0 +fingerprint: e33c6fb21a7a9e5cbf9df3cc9a23ee245e38227d64739abf95c7b9622866b0a8 +dependencies: +- rust-1-linux diff --git a/shared_job_templates/ruby_version.sh.erb b/shared_job_templates/ruby_version.sh.erb index 91f1996588..3e66af1d9d 100644 --- a/shared_job_templates/ruby_version.sh.erb +++ b/shared_job_templates/ruby_version.sh.erb @@ -1,5 +1,5 @@ # shellcheck disable=1090 -source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/ruby-3.3/bosh/runtime.env" +source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/ruby-4.0/bosh/runtime.env" CC_PACKAGE_DIR="${BOSH_PACKAGES_DIR:-/var/vcap/packages}/cloud_controller_ng" BUNDLER_VERSION=$(grep "BUNDLED WITH" ${CC_PACKAGE_DIR}/cloud_controller_ng/Gemfile.lock -A 1 | grep -v "BUNDLED" | awk '{print $1}') diff --git a/spec/Gemfile b/spec/Gemfile index 380009b536..f8b151ac64 100644 --- a/spec/Gemfile +++ b/spec/Gemfile @@ -3,6 +3,7 @@ source 'https://rubygems.org' group :develop do + gem 'ostruct' gem 'rubocop' gem 'rubocop-capybara' gem 'rubocop-factory_bot' diff --git a/spec/Gemfile.lock b/spec/Gemfile.lock index fe4d376bc8..c4a580775d 100644 --- a/spec/Gemfile.lock +++ b/spec/Gemfile.lock @@ -8,6 +8,7 @@ GEM json (2.21.2) language_server-protocol (3.17.0.6) lint_roller (1.1.0) + ostruct (0.6.3) parallel (2.1.0) parser (3.3.12.0) ast (~> 2.4.1) @@ -68,6 +69,7 @@ PLATFORMS DEPENDENCIES bosh-template + ostruct rspec rubocop rubocop-capybara