summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-03-15 13:33:28 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-03-15 13:33:28 +0000
commit765bdd7c11e693d06019750242eb83efe38a00b6 (patch)
tree24f08d7213962a8039c97ba93cfa7d82c7ec7229
parentdb87b632cbadc272dee1acbb10d226680f7212a2 (diff)
downloadgitlab-ce-765bdd7c11e693d06019750242eb83efe38a00b6.tar.gz
Add latest changes from gitlab-org/gitlab@15-9-stable-ee
-rw-r--r--.gitlab-ci.yml1
-rw-r--r--.gitlab/ci/release-environments.gitlab-ci.yml22
-rw-r--r--.gitlab/ci/release-environments/main.gitlab-ci.yml62
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml18
4 files changed, 103 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9fa296be455..700251ec90f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,6 +12,7 @@ stages:
- post-qa
- pages
- notify
+ - release-environments
# always use `gitlab-org` runners, however
# in cases where jobs require Docker-in-Docker, the job
diff --git a/.gitlab/ci/release-environments.gitlab-ci.yml b/.gitlab/ci/release-environments.gitlab-ci.yml
new file mode 100644
index 00000000000..a9d9c938ee0
--- /dev/null
+++ b/.gitlab/ci/release-environments.gitlab-ci.yml
@@ -0,0 +1,22 @@
+---
+start-release-environments-pipeline:
+ allow_failure: true
+ extends:
+ - .release-environments:rules:start-release-environments-pipeline
+ stage: release-environments
+ # We do not want to have ALL global variables passed as trigger variables,
+ # as they cannot be overridden. See this issue for more context:
+ #
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/387183
+ inherit:
+ variables: false
+
+ # These variables are set in the pipeline schedules.
+ # They need to be explicitly passed on to the child pipeline.
+ # https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html#pass-cicd-variables-to-a-downstream-pipeline-by-using-the-variables-keyword
+ variables:
+ # This is needed by `release-environments-build-cng-env` (`.gitlab/ci/release-environments/main.gitlab-ci.yml`).
+ PARENT_PIPELINE_ID: $CI_PIPELINE_ID
+ trigger:
+ strategy: depend
+ include: .gitlab/ci/release-environments/main.gitlab-ci.yml
diff --git a/.gitlab/ci/release-environments/main.gitlab-ci.yml b/.gitlab/ci/release-environments/main.gitlab-ci.yml
new file mode 100644
index 00000000000..e2fed0a6dbd
--- /dev/null
+++ b/.gitlab/ci/release-environments/main.gitlab-ci.yml
@@ -0,0 +1,62 @@
+---
+default:
+ interruptible: true
+
+stages:
+ - prepare
+
+include:
+ - local: .gitlab/ci/global.gitlab-ci.yml
+
+release-environments-build-cng-env:
+ allow_failure: true
+ image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-alpine3.16
+ stage: prepare
+ needs:
+ # We need this job because we need its `cached-assets-hash.txt` artifact, so that we can pass the assets image tag to the downstream CNG pipeline.
+ - pipeline: $PARENT_PIPELINE_ID
+ job: build-assets-image
+ variables:
+ BUILD_ENV: build.env
+ before_script:
+ - source ./scripts/utils.sh
+ - install_gitlab_gem
+ script:
+ - 'ruby -r./scripts/trigger-build.rb -e "puts Trigger.variables_for_env_file(Trigger::CNG.new.variables)" > $BUILD_ENV'
+ - echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV
+ - ruby -e 'puts "FULL_RUBY_VERSION=#{RUBY_VERSION}"' >> build.env
+ - cat $BUILD_ENV
+ artifacts:
+ reports:
+ dotenv: $BUILD_ENV
+ paths:
+ - $BUILD_ENV
+ expire_in: 7 days
+ when: always
+
+release-environments-build-cng:
+ allow_failure: true
+ stage: prepare
+ needs: ["release-environments-build-cng-env"]
+ inherit:
+ variables: false
+ variables:
+ GITLAB_REF_SLUG: "${GITLAB_REF_SLUG}"
+ # CNG pipeline specific variables
+ GITLAB_VERSION: "${GITLAB_VERSION}"
+ GITLAB_TAG: "${GITLAB_TAG}"
+ GITLAB_ASSETS_TAG: "${GITLAB_ASSETS_TAG}"
+ FORCE_RAILS_IMAGE_BUILDS: "${FORCE_RAILS_IMAGE_BUILDS}"
+ CE_PIPELINE: "${CE_PIPELINE}" # Based on https://docs.gitlab.com/ee/ci/jobs/job_control.html#check-if-a-variable-exists, `if: '$CE_PIPELINE'` will evaluate to `false` when this variable is empty
+ EE_PIPELINE: "${EE_PIPELINE}" # Based on https://docs.gitlab.com/ee/ci/jobs/job_control.html#check-if-a-variable-exists, `if: '$EE_PIPELINE'` will evaluate to `false` when this variable is empty
+ GITLAB_ELASTICSEARCH_INDEXER_VERSION: "${GITLAB_ELASTICSEARCH_INDEXER_VERSION}"
+ GITLAB_KAS_VERSION: "${GITLAB_KAS_VERSION}"
+ GITLAB_METRICS_EXPORTER_VERSION: "${GITLAB_METRICS_EXPORTER_VERSION}"
+ GITLAB_PAGES_VERSION: "${GITLAB_PAGES_VERSION}"
+ GITLAB_SHELL_VERSION: "${GITLAB_SHELL_VERSION}"
+ GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}"
+ RUBY_VERSION: "${FULL_RUBY_VERSION}"
+ trigger:
+ project: gitlab-org/build/CNG-mirror
+ branch: $TRIGGER_BRANCH
+ strategy: depend
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index d1e29084a5a..2762b4e5137 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -1901,6 +1901,13 @@
when: never
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable-ee$/'
+.releases:rules:canonical-dot-com-gitlab-stable-branch-only-setup-test-env-patterns:
+ rules:
+ - if: '$CI_COMMIT_MESSAGE =~ /\[merge-train skip\]/'
+ when: never
+ - if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable-ee$/'
+ changes: *setup-test-env-patterns
+
.releases:rules:canonical-dot-com-security-gitlab-stable-branch-only:
rules:
- if: '$CI_COMMIT_MESSAGE =~ /\[merge-train skip\]/'
@@ -2295,3 +2302,14 @@
- <<: *if-dot-com-gitlab-org-merge-request
changes: *feature-flag-development-config-patterns
allow_failure: true # See https://gitlab.com/gitlab-org/gitlab/-/issues/351136
+
+##############################
+# release-environments rules #
+##############################
+.release-environments:rules:start-release-environments-pipeline:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - <<: *if-merge-request-labels-pipeline-expedite
+ when: never
+ - !reference [".releases:rules:canonical-dot-com-gitlab-stable-branch-only-setup-test-env-patterns", rules]