diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-11 21:09:22 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-11 21:09:22 +0300 |
commit | 1bd9d2d9499d0d28e62254a28fcd3d913a8704af (patch) | |
tree | ea9969a5a4c3ac77858be20d69869674bed5ca43 /.gitlab | |
parent | d8877c12347443fa02e0ba53ad8d5cd318f6fa28 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to '.gitlab')
-rw-r--r-- | .gitlab/ci/as-if-foss.gitlab-ci.yml | 63 | ||||
-rw-r--r-- | .gitlab/ci/rules.gitlab-ci.yml | 17 |
2 files changed, 73 insertions, 7 deletions
diff --git a/.gitlab/ci/as-if-foss.gitlab-ci.yml b/.gitlab/ci/as-if-foss.gitlab-ci.yml index 128a6195c4c..fc8db3ba974 100644 --- a/.gitlab/ci/as-if-foss.gitlab-ci.yml +++ b/.gitlab/ci/as-if-foss.gitlab-ci.yml @@ -1,11 +1,17 @@ +.as-if-foss-variables: + variables: + AS_IF_FOSS_BRANCH: "as-if-foss/${CI_COMMIT_REF_NAME}" + FOSS_REPOSITORY: "https://dummy:${AS_IF_FOSS_TOKEN}@gitlab.com/gitlab-org/gitlab-foss.git" + prepare-as-if-foss-branch: extends: - .as-if-foss:rules:start-as-if-foss + - .as-if-foss-variables stage: prepare needs: [] - variables: - AS_IF_FOSS_BRANCH: "as-if-foss/${CI_COMMIT_REF_NAME}" - FOSS_REPOSITORY: "https://dummy:${AS_IF_FOSS_TOKEN}@gitlab.com/gitlab-org/gitlab-foss.git" + environment: + name: "as-if-foss/${CI_MERGE_REQUEST_IID}" + on_stop: delete-as-if-foss-branch before_script: - git clone --single-branch --branch master "${FOSS_REPOSITORY}" gitlab-foss - git -C gitlab-foss checkout -b "${AS_IF_FOSS_BRANCH}" master @@ -29,15 +35,16 @@ prepare-as-if-foss-branch: prepare-as-if-foss-env: extends: - .as-if-foss:rules:start-as-if-foss + - .fast-no-clone-job stage: prepare needs: [] variables: BUILD_ENV: build.env - before_script: - - source scripts/utils.sh - - install_gitlab_gem + FILES_TO_DOWNLOAD: > + scripts/setup/generate-as-if-foss-env.rb script: - - scripts/setup/generate-as-if-foss-env.rb | tee $BUILD_ENV + - install_gitlab_gem + - ruby scripts/setup/generate-as-if-foss-env.rb | tee "${BUILD_ENV}" artifacts: expire_in: 3 days reports: @@ -82,3 +89,45 @@ start-as-if-foss: project: gitlab-org/gitlab-foss branch: as-if-foss/${CI_COMMIT_REF_NAME} strategy: depend + +delete-as-if-foss-branch: + extends: + - .as-if-foss:rules:start-as-if-foss:allow-failure:manual + - .as-if-foss-variables + image: + name: alpine/git + entrypoint: [""] + stage: prepare + needs: + - prepare-as-if-foss-branch + environment: + name: "as-if-foss/${CI_MERGE_REQUEST_IID}" + action: stop + variables: + GIT_STRATEGY: "none" + script: + - | + git init + git push -d "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}" + +# We can only delete the environment after it's stopped, therefore +# we need to use another job to delete the environment, not in the +# job where it's stopping the environment. See: +# https://docs.gitlab.com/ee/ci/environments/#delete-an-environment +delete-as-if-foss-environment: + extends: + - .as-if-foss:rules:start-as-if-foss:allow-failure + image: alpine:latest + stage: prepare + needs: + - delete-as-if-foss-branch + variables: + GIT_STRATEGY: "none" + ESCAPED_ENVIRONMENT_NAME: "as-if-foss%2f${CI_MERGE_REQUEST_IID}" + ENVIRONMENT_API_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/environments" + before_script: + - apk add jq curl + script: + - | + ENV_ID=$(curl --silent --fail --request GET --header "Private-Token: ${PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE}" "${ENVIRONMENT_API_URL}?name=${ESCAPED_ENVIRONMENT_NAME}" | jq '.[0].id') + curl --silent --request DELETE --header "Private-Token: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE" "${ENVIRONMENT_API_URL}/${ENV_ID}" diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 7db2c15db9b..ab603ecb9f2 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -3002,6 +3002,23 @@ - !reference [".strict-ee-only-rules", rules] - <<: *if-merge-request-labels-as-if-foss-cross-project +.as-if-foss:rules:start-as-if-foss:allow-failure:manual: + rules: + - if: '$AS_IF_FOSS_TOKEN == null' + when: never + - !reference [".strict-ee-only-rules", rules] + - <<: *if-merge-request-labels-as-if-foss-cross-project + when: manual + allow_failure: true + +.as-if-foss:rules:start-as-if-foss:allow-failure: + rules: + - if: '$AS_IF_FOSS_TOKEN == null' + when: never + - !reference [".strict-ee-only-rules", rules] + - <<: *if-merge-request-labels-as-if-foss-cross-project + allow_failure: true + ################## # as-if-jh rules # ################## |