diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8322900f1..5712d966b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,7 +25,7 @@ jobs: build-and-publish-image: if: github.event_name == 'workflow_dispatch' || startsWith(github.event.release.tag_name, 'v') name: Build and publish image - uses: alphagov/govuk-infrastructure/.github/workflows/build-and-push-image.yml@main + uses: alphagov/govuk-infrastructure/.github/workflows/build-and-push-multiarch-image.yml@main with: gitRef: ${{ inputs.gitRef || github.event.release.tag_name }} permissions: diff --git a/.ruby-version b/.ruby-version index be94e6f53..351227fca 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.2 +3.2.4 diff --git a/Dockerfile b/Dockerfile index c7924cf31..3bc6c66f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -ARG ruby_version=3.2.2 +ARG ruby_version=3.2 ARG base_image=ghcr.io/alphagov/govuk-ruby-base:$ruby_version ARG builder_image=ghcr.io/alphagov/govuk-ruby-builder:$ruby_version -FROM $builder_image AS builder +FROM --platform=$TARGETPLATFORM $builder_image AS builder WORKDIR $APP_HOME COPY Gemfile* .ruby-version ./ @@ -15,7 +15,7 @@ COPY . . RUN bootsnap precompile --gemfile . RUN rails assets:precompile && rm -fr log node_modules -FROM $base_image +FROM --platform=$TARGETPLATFORM $base_image RUN install_packages imagemagick ENV GOVUK_APP_NAME=travel-advice-publisher diff --git a/Gemfile.lock b/Gemfile.lock index de1f3e0ee..fbc6060ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,21 +84,23 @@ GEM bigdecimal (3.1.7) bootsnap (1.18.3) msgpack (~> 1.2) - brakeman (6.1.0) + brakeman (6.1.2) + racc bson (5.0.0) builder (3.2.4) byebug (11.1.3) - capybara (3.39.2) + capybara (3.40.0) addressable matrix mini_mime (>= 0.1.3) - nokogiri (~> 1.8) + nokogiri (~> 1.11) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - ci_reporter (2.0.0) + ci_reporter (2.1.0) builder (>= 2.1.2) + rexml ci_reporter_rspec (1.0.0) ci_reporter (~> 2.0) rspec (>= 2.14, < 4) @@ -123,8 +125,8 @@ GEM domain_name (0.6.20240107) drb (2.2.1) erubi (1.12.0) - execjs (2.8.1) - factory_bot (6.4.5) + execjs (2.9.1) + factory_bot (6.4.6) activesupport (>= 5.0.0) factory_bot_rails (6.4.3) factory_bot (~> 6.4) @@ -141,12 +143,12 @@ GEM plek (>= 1.9.0) rack (>= 2.2.0) rest-client (~> 2.0) - gds-sso (19.0.0) + gds-sso (19.1.0) oauth2 (~> 2.0) omniauth (~> 2.1) omniauth-oauth2 (~> 1.8) - plek (>= 4, < 6) - rails (>= 6) + plek (>= 5) + rails (>= 7) warden (~> 1.2) warden-oauth2 (~> 0.0.1) globalid (1.2.1) @@ -182,7 +184,7 @@ GEM govuk_personalisation (0.16.0) plek (>= 1.9.0) rails (>= 6, < 8) - govuk_publishing_components (38.1.0) + govuk_publishing_components (38.1.1) govuk_app_config govuk_personalisation (>= 0.7.0) kramdown @@ -213,13 +215,14 @@ GEM i18n (1.14.4) concurrent-ruby (~> 1.0) io-console (0.7.2) - irb (1.12.0) - rdoc + irb (1.13.0) + rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.7.1) + json (2.7.2) json-schema (4.3.0) addressable (>= 2.8) - jwt (2.7.1) + jwt (2.8.1) + base64 kramdown (2.4.0) rexml language_server-protocol (3.17.0.3) @@ -240,7 +243,7 @@ GEM net-smtp marcel (1.0.4) matrix (0.4.2) - method_source (1.0.0) + method_source (1.1.0) mime-types (3.5.2) mime-types-data (~> 3.2015) mime-types-data (3.2024.0305) @@ -250,13 +253,13 @@ GEM minitest (5.22.3) mongo (2.20.0) bson (>= 4.14.1, < 6.0.0) - mongoid (8.1.5) + mongoid (9.0.0) activemodel (>= 5.1, < 7.2, != 7.0.0) concurrent-ruby (>= 1.0.5, < 2.0) mongo (>= 2.18.0, < 3.0.0) - ruby2_keywords (~> 0.0.5) msgpack (1.7.2) - multi_xml (0.6.0) + multi_xml (0.7.1) + bigdecimal (~> 3.1) mutex_m (0.2.0) net-http (0.4.1) uri @@ -324,7 +327,7 @@ GEM opentelemetry-instrumentation-active_model_serializers (0.20.1) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-active_record (0.7.1) + opentelemetry-instrumentation-active_record (0.7.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-active_support (0.5.1) @@ -364,65 +367,65 @@ GEM opentelemetry-instrumentation-sidekiq (~> 0.25.0) opentelemetry-instrumentation-sinatra (~> 0.23.1) opentelemetry-instrumentation-trilogy (~> 0.59.0) - opentelemetry-instrumentation-aws_sdk (0.5.1) + opentelemetry-instrumentation-aws_sdk (0.5.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-base (0.22.3) opentelemetry-api (~> 1.0) opentelemetry-registry (~> 0.1) - opentelemetry-instrumentation-bunny (0.21.2) + opentelemetry-instrumentation-bunny (0.21.3) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-concurrent_ruby (0.21.2) + opentelemetry-instrumentation-concurrent_ruby (0.21.3) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-dalli (0.25.0) + opentelemetry-instrumentation-dalli (0.25.1) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-delayed_job (0.22.1) + opentelemetry-instrumentation-delayed_job (0.22.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-ethon (0.21.3) + opentelemetry-instrumentation-ethon (0.21.4) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-excon (0.22.0) + opentelemetry-instrumentation-excon (0.22.1) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-faraday (0.24.1) + opentelemetry-instrumentation-faraday (0.24.2) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-grape (0.1.6) + opentelemetry-instrumentation-grape (0.1.7) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-rack (~> 0.21) - opentelemetry-instrumentation-graphql (0.28.1) + opentelemetry-instrumentation-graphql (0.28.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-gruf (0.2.0) + opentelemetry-instrumentation-gruf (0.2.1) opentelemetry-api (>= 1.0.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-http (0.23.2) + opentelemetry-instrumentation-http (0.23.3) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-http_client (0.22.3) + opentelemetry-instrumentation-http_client (0.22.4) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-koala (0.20.2) + opentelemetry-instrumentation-koala (0.20.3) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-lmdb (0.22.1) + opentelemetry-instrumentation-lmdb (0.22.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-mongo (0.22.2) + opentelemetry-instrumentation-mongo (0.22.3) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-mysql2 (0.27.0) + opentelemetry-instrumentation-mysql2 (0.27.1) opentelemetry-api (~> 1.0) opentelemetry-helpers-mysql opentelemetry-helpers-sql-obfuscation @@ -431,21 +434,21 @@ GEM opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-pg (0.27.1) + opentelemetry-instrumentation-pg (0.27.2) opentelemetry-api (~> 1.0) opentelemetry-helpers-sql-obfuscation opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-que (0.8.0) + opentelemetry-instrumentation-que (0.8.1) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-racecar (0.3.1) + opentelemetry-instrumentation-racecar (0.3.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-rack (0.24.1) + opentelemetry-instrumentation-rack (0.24.2) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-rails (0.30.0) + opentelemetry-instrumentation-rails (0.30.1) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-action_pack (~> 0.9.0) opentelemetry-instrumentation-action_view (~> 0.7.0) @@ -453,37 +456,37 @@ GEM opentelemetry-instrumentation-active_record (~> 0.7.0) opentelemetry-instrumentation-active_support (~> 0.5.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-rake (0.2.1) + opentelemetry-instrumentation-rake (0.2.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-rdkafka (0.4.3) + opentelemetry-instrumentation-rdkafka (0.4.4) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-redis (0.25.3) + opentelemetry-instrumentation-redis (0.25.4) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-resque (0.5.1) + opentelemetry-instrumentation-resque (0.5.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-restclient (0.22.3) + opentelemetry-instrumentation-restclient (0.22.4) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-ruby_kafka (0.21.0) + opentelemetry-instrumentation-ruby_kafka (0.21.1) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-sidekiq (0.25.2) + opentelemetry-instrumentation-sidekiq (0.25.3) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-sinatra (0.23.2) + opentelemetry-instrumentation-sinatra (0.23.3) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-rack (~> 0.21) - opentelemetry-instrumentation-trilogy (0.59.2) + opentelemetry-instrumentation-trilogy (0.59.3) opentelemetry-api (~> 1.0) opentelemetry-helpers-mysql opentelemetry-helpers-sql-obfuscation @@ -499,7 +502,7 @@ GEM opentelemetry-semantic_conventions (1.10.0) opentelemetry-api (~> 1.0) parallel (1.24.0) - parser (3.3.0.5) + parser (3.3.1.0) ast (~> 2.4.1) racc pdf-reader (2.12.0) @@ -511,7 +514,7 @@ GEM plek (5.1.0) prometheus_exporter (2.1.0) webrick - pry (0.14.1) + pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) pry-byebug (3.10.1) @@ -582,9 +585,9 @@ GEM redis-namespace (1.11.0) redis (>= 4) regexp_parser (2.9.0) - reline (0.5.3) + reline (0.5.4) io-console (~> 0.5) - request_store (1.6.0) + request_store (1.7.0) rack (>= 1.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -650,25 +653,25 @@ GEM rubocop-capybara (~> 2.17) rubocop-factory_bot (~> 2.22) rubocop-rspec_rails (~> 2.28) - rubocop-rspec_rails (2.28.2) + rubocop-rspec_rails (2.28.3) rubocop (~> 1.40) ruby-progressbar (1.13.0) ruby-rc4 (0.1.5) - ruby2_keywords (0.0.5) rubyzip (2.3.2) sanitize (6.1.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) - sass-embedded (1.70.0) - google-protobuf (~> 3.25) + sass-embedded (1.76.0) + google-protobuf (>= 3.25, < 5.0) rake (>= 13.0.0) - sass-embedded (1.70.0-aarch64-linux-gnu) - google-protobuf (~> 3.25) - sass-embedded (1.70.0-arm64-darwin) - google-protobuf (~> 3.25) - sass-embedded (1.70.0-x86_64-linux-gnu) - google-protobuf (~> 3.25) - selenium-webdriver (4.16.0) + sass-embedded (1.76.0-aarch64-linux-gnu) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-arm64-darwin) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-x86_64-linux-gnu) + google-protobuf (>= 3.25, < 5.0) + selenium-webdriver (4.20.1) + base64 (~> 0.2) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -691,7 +694,7 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) - slimmer (18.1.0) + slimmer (18.2.0) json nokogiri (~> 1.7) null_logger @@ -720,14 +723,15 @@ GEM thor (1.3.1) timecop (0.9.8) timeout (0.4.1) - ttfunk (1.7.0) + ttfunk (1.8.0) + bigdecimal (~> 3.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) uglifier (4.2.0) execjs (>= 0.3.0, < 3) unicode-display_width (2.5.0) uri (0.13.0) - version_gem (1.1.3) + version_gem (1.1.4) warden (1.2.9) rack (>= 2.0.9) warden-oauth2 (0.0.1) @@ -789,4 +793,4 @@ DEPENDENCIES webmock BUNDLED WITH - 2.3.23 + 2.4.19