diff --git a/.gitlab/ci/release-environments/main.gitlab-ci.yml b/.gitlab/ci/release-environments/main.gitlab-ci.yml index 731de95722180f16984f729690332111c2e604f9..c02c3b9e0868170a5b26b025a561e82cc529c989 100644 --- a/.gitlab/ci/release-environments/main.gitlab-ci.yml +++ b/.gitlab/ci/release-environments/main.gitlab-ci.yml @@ -37,7 +37,7 @@ release-environments-deploy-env: variables: DEPLOY_ENV: deploy.env script: - - ./scripts/construct-release-environments-versions.rb > $DEPLOY_ENV + - ./scripts/release-environment/construct-release-environments-versions.rb artifacts: reports: dotenv: $DEPLOY_ENV diff --git a/scripts/construct-release-environments-versions.rb b/scripts/release_environment/construct-release-environments-versions.rb similarity index 67% rename from scripts/construct-release-environments-versions.rb rename to scripts/release_environment/construct-release-environments-versions.rb index 7f8fa103def84a7adcad086742c15738588fd033..55a2da5d149b8a806daf9205e496f8b2e4215be4 100755 --- a/scripts/construct-release-environments-versions.rb +++ b/scripts/release_environment/construct-release-environments-versions.rb @@ -25,13 +25,31 @@ def generate_json(environment) end JSON.generate(output_json) end + + def set_required_env_vars? + required_env_vars = %w[DEPLOY_ENV] + + required_env_vars.each do |var| + if ENV.fetch(var, nil).to_s.empty? + puts "Missing required environment variable: #{var}" + return false + end + end + end end # Outputs in `dotenv` format the ENVIRONMENT and VERSIONS to pass to release environments e.g. # ENVIRONMENT=15-10-stable # VERSIONS={"gitaly":"15-10-stable-c7c5131c","registry":"15-10-stable-c7c5131c","kas":"15-10-stable-c7c5131c", ... if $PROGRAM_NAME == __FILE__ + model = ReleaseEnvironmentsModel.new + raise "Missing required environment variable." unless model.set_required_env_vars? + environment = ENV['CI_COMMIT_REF_SLUG'].sub("-ee", "") - puts "ENVIRONMENT=#{environment}" - puts "VERSIONS=#{ReleaseEnvironmentsModel.new.generate_json(environment)}" + File.open(ENV['DEPLOY_ENV'], 'w') do |file| + file.puts "ENVIRONMENT=#{environment}" + file.puts "VERSIONS=#{model.generate_json(environment)}" + end + + puts File.read(ENV['DEPLOY_ENV']) end