diff --git a/Dockerfile b/Dockerfile index 7e7d590..f44458b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ ARG RUBY_VERSION=3.1.2 ARG BUNDLER_VERSION=2.3.13 +ARG base_commit=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa FROM ruby:${RUBY_VERSION}-slim AS runtime-base @@ -54,13 +55,14 @@ RUN bundle config set with 'development test' \ FROM runtime-base AS production -ARG GIT_COMMIT_SHA=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ARG base_commit=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ENV RAILS_ENV=production -ENV GIT_COMMIT_SHA=${GIT_COMMIT_SHA} +ENV RAILS_ENV=production \ + GIT_COMMIT_SHA=${base_commit} COPY --from=bundle-production /usr/local/bundle /usr/local/bundle COPY --from=bundle-production /app/vendor/bundle /app/vendor/bundle + COPY Gemfile Gemfile.lock /app/ COPY app /app/app COPY bin /app/bin @@ -69,6 +71,7 @@ COPY db /app/db COPY public /app/public COPY script /app/script COPY config.ru Rakefile /app/ + # Duplicate production environment to beta environment COPY config/environments/production.rb /app/config/environments/beta.rb @@ -78,10 +81,10 @@ CMD ["sh", "-lc", "bundle exec rails db:migrate && bundle exec rails s -p 3000 - FROM runtime-base AS test -ARG GIT_COMMIT_SHA=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ARG base_commit=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ENV RAILS_ENV=test -ENV GIT_COMMIT_SHA=${GIT_COMMIT_SHA} +ENV RAILS_ENV=test \ + GIT_COMMIT_SHA=${base_commit} RUN apt-get update -qq \ && apt-get install -y --no-install-recommends \ @@ -93,6 +96,7 @@ RUN apt-get update -qq \ COPY --from=bundle-test /usr/local/bundle /usr/local/bundle COPY --from=bundle-test /app/vendor/bundle /app/vendor/bundle + COPY Gemfile Gemfile.lock /app/ COPY app /app/app COPY bin /app/bin diff --git a/app/controllers/version_controller.rb b/app/controllers/version_controller.rb index 83c7bdc..ae01a3f 100644 --- a/app/controllers/version_controller.rb +++ b/app/controllers/version_controller.rb @@ -8,12 +8,6 @@ class VersionController < ApplicationController private def git_commit_sha - ENV['GIT_COMMIT_SHA'].presence || local_git_commit_sha || 'unknown' - end - - def local_git_commit_sha - Rails.root.join('.git').exist? ? `git rev-parse HEAD`.strip.presence : nil - rescue StandardError - nil + ENV['GIT_COMMIT_SHA'].presence || 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' end end diff --git a/spec/e2e/http/api_surface_spec.rb b/spec/e2e/http/api_surface_spec.rb index 64c0bf0..2c1b5ed 100644 --- a/spec/e2e/http/api_surface_spec.rb +++ b/spec/e2e/http/api_surface_spec.rb @@ -33,7 +33,9 @@ RSpec.describe 'Backend API surface HTTP E2E' do response = anonymous_client.get('/version') expect(response[:status]).to eq(200) - expect(response.dig(:json, :git_commit_sha)).to match(/\A[0-9a-f]{40}\z/) + sha = response.dig(:json, :git_commit_sha) + expect(sha).to match(/\A[0-9a-f]{40}\z/) + expect(sha).not_to eq("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") end it 'supports registration for new users and still requires confirmation for login' do