summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-04-19 02:38:12 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-04-19 02:38:12 +0000
commitb18a04d041aa4ef632ec29895b0cee6fea63f3b9 (patch)
treeda279f1767d67759c35d893ea47e2bce129f8bde
parentd56c47033c32d6d32a864e5c16a3b2fd959b08da (diff)
downloadgitlab-ce-b18a04d041aa4ef632ec29895b0cee6fea63f3b9.tar.gz
Add latest changes from gitlab-org/gitlab@15-10-stable-ee
-rw-r--r--.gitlab/ci/release-environments/main.gitlab-ci.yml32
-rwxr-xr-xscripts/construct-release-environments-versions.rb37
2 files changed, 69 insertions, 0 deletions
diff --git a/.gitlab/ci/release-environments/main.gitlab-ci.yml b/.gitlab/ci/release-environments/main.gitlab-ci.yml
index e2fed0a6dbd..982329646a7 100644
--- a/.gitlab/ci/release-environments/main.gitlab-ci.yml
+++ b/.gitlab/ci/release-environments/main.gitlab-ci.yml
@@ -4,6 +4,7 @@ default:
stages:
- prepare
+ - deploy
include:
- local: .gitlab/ci/global.gitlab-ci.yml
@@ -56,7 +57,38 @@ release-environments-build-cng:
GITLAB_SHELL_VERSION: "${GITLAB_SHELL_VERSION}"
GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}"
RUBY_VERSION: "${FULL_RUBY_VERSION}"
+ IMAGE_TAG_EXT: "-${CI_COMMIT_SHORT_SHA}"
trigger:
project: gitlab-org/build/CNG-mirror
branch: $TRIGGER_BRANCH
strategy: depend
+
+release-environments-deploy-env:
+ allow_failure: true
+ stage: deploy
+ needs: ["release-environments-build-cng"]
+ variables:
+ DEPLOY_ENV: deploy.env
+ script:
+ - ./scripts/construct-release-environments-versions.rb > $DEPLOY_ENV
+ artifacts:
+ reports:
+ dotenv: $DEPLOY_ENV
+ paths:
+ - $DEPLOY_ENV
+ expire_in: 7 days
+ when: always
+
+release-environments-deploy:
+ allow_failure: true
+ stage: deploy
+ needs: ["release-environments-deploy-env"]
+ inherit:
+ variables: false
+ variables:
+ VERSIONS: "${VERSIONS}"
+ ENVIRONMENT: "${ENVIRONMENT}"
+ trigger:
+ project: gl-infra/release-environments
+ branch: main
+ strategy: depend
diff --git a/scripts/construct-release-environments-versions.rb b/scripts/construct-release-environments-versions.rb
new file mode 100755
index 00000000000..1af45923731
--- /dev/null
+++ b/scripts/construct-release-environments-versions.rb
@@ -0,0 +1,37 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require 'json'
+
+class ReleaseEnvironmentsModel
+ COMPONENTS = %w[gitaly registry kas mailroom pages gitlab shell].freeze
+
+ # Will generate a json object that has a key for every component and a value which is the environment combined with
+ # short sha
+ # Example:
+ # {
+ # "gitaly": "15-10-stable-c7c5131c",
+ # "registry": "15-10-stable-c7c5131c",
+ # "kas": "15-10-stable-c7c5131c",
+ # "mailroom": "15-10-stable-c7c5131c",
+ # "pages": "15-10-stable-c7c5131c",
+ # "gitlab": "15-10-stable-c7c5131c",
+ # "shell": "15-10-stable-c7c5131c"
+ # }
+ def generate_json(environment)
+ output_json = {}
+ COMPONENTS.each do |component|
+ output_json[component.to_s] = "#{environment}-#{ENV['CI_COMMIT_SHORT_SHA']}"
+ end
+ JSON.generate(output_json)
+ 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__
+ environment = ENV['CI_COMMIT_REF_SLUG'].sub("-ee", "")
+ puts "ENVIRONMENT=#{environment}"
+ puts "VERSIONS=#{ReleaseEnvironmentsModel.new.generate_json(environment)}"
+end