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..f7cff669ae --- /dev/null +++ b/.final_builds/packages/ruby-4.0/index.yml @@ -0,0 +1,6 @@ +builds: + 1c57129111fddc1177f567ea243bb538a8087297eb916e61444e2fb27408b25d: + version: 1c57129111fddc1177f567ea243bb538a8087297eb916e61444e2fb27408b25d + blobstore_id: 35e7e099-6aa1-4def-5131-b4d40906479b + sha1: sha256:5962350916c57b180cc2453aa098d868ee17cef9610dabe8257fe1989779c29a +format-version: "2" diff --git a/.ruby-version b/.ruby-version index b9b3b0de0a..4d54daddb6 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.11 +4.0.2 diff --git a/jobs/blobstore_benchmark/spec b/jobs/blobstore_benchmark/spec index 600627cd1f..4b1a54e1cf 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 c74688ff90..0d7c2db2ab 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 77cce50294..22720b5e54 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 623440c1a9..e3ef00ff3a 100644 --- a/jobs/cloud_controller_ng/spec +++ b/jobs/cloud_controller_ng/spec @@ -80,7 +80,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 c59bdbb9b6..ad12bf42ab 100644 --- a/jobs/cloud_controller_worker/spec +++ b/jobs/cloud_controller_worker/spec @@ -52,7 +52,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-4.0/spec.lock b/packages/ruby-4.0/spec.lock new file mode 100644 index 0000000000..a3d2606af1 --- /dev/null +++ b/packages/ruby-4.0/spec.lock @@ -0,0 +1,2 @@ +name: ruby-4.0 +fingerprint: 1c57129111fddc1177f567ea243bb538a8087297eb916e61444e2fb27408b25d 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 d5446c73ba..9fa6fe1afd 100644 --- a/spec/Gemfile.lock +++ b/spec/Gemfile.lock @@ -8,6 +8,7 @@ GEM json (2.19.4) language_server-protocol (3.17.0.5) lint_roller (1.1.0) + ostruct (0.6.3) parallel (2.1.0) parser (3.3.11.1) ast (~> 2.4.1) @@ -67,6 +68,7 @@ PLATFORMS DEPENDENCIES bosh-template + ostruct rspec rubocop rubocop-capybara