diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-02 18:10:19 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-02 18:10:19 +0300 |
commit | cef74ed0434b53fde0d7dcc2507b6f1639a63e7d (patch) | |
tree | 300bc30b6c4272cba3ab65297ede18bfffba2bd2 /.gitlab/ci | |
parent | ecdd26856c46b1e9e0c500701b36b6ae338e18a0 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to '.gitlab/ci')
-rw-r--r-- | .gitlab/ci/as-if-foss.gitlab-ci.yml | 70 | ||||
-rw-r--r-- | .gitlab/ci/qa-common/variables.gitlab-ci.yml | 1 | ||||
-rw-r--r-- | .gitlab/ci/qa.gitlab-ci.yml | 5 | ||||
-rw-r--r-- | .gitlab/ci/rules.gitlab-ci.yml | 81 | ||||
-rw-r--r-- | .gitlab/ci/setup.gitlab-ci.yml | 6 |
5 files changed, 119 insertions, 44 deletions
diff --git a/.gitlab/ci/as-if-foss.gitlab-ci.yml b/.gitlab/ci/as-if-foss.gitlab-ci.yml new file mode 100644 index 00000000000..c1ba9d01c77 --- /dev/null +++ b/.gitlab/ci/as-if-foss.gitlab-ci.yml @@ -0,0 +1,70 @@ +prepare-as-if-foss-branch: + extends: + - .as-if-foss:rules:start-as-if-foss + 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" + before_script: + - git clone --single-branch --branch master "${FOSS_REPOSITORY}" gitlab-foss + - git -C gitlab-foss checkout -b "${AS_IF_FOSS_BRANCH}" master + - rm -r .git/ + - mv gitlab-foss/.git . + - rm -r gitlab-foss + script: + # See: https://gitlab.com/gitlab-org/merge-train/-/blob/041d942ae1b5615703b7a786982340b61620e7c5/bin/merge-train#L228-239 + - git checkout VERSION + - rm -rf ee + - rm -rf qa/spec/ee + - rm -rf qa/qa/specs/features/ee + - rm -rf qa/qa/ee + - rm -f qa/qa/ee.rb + - rm -f CHANGELOG-EE.md + - rm -f changelogs/*-ee.md + - git add -A + - git commit -m 'Update from merge request' # TODO: Mark which SHA we add + - git push -f "${FOSS_REPOSITORY}" "${AS_IF_FOSS_BRANCH}" + +prepare-as-if-foss-env: + extends: + - .as-if-foss:rules:start-as-if-foss + stage: prepare + needs: [] + variables: + BUILD_ENV: build.env + before_script: + - source scripts/utils.sh + - install_gitlab_gem + script: + - scripts/setup/generate-as-if-foss-env.rb | tee $BUILD_ENV + artifacts: + expire_in: 3 days + reports: + dotenv: $BUILD_ENV + paths: + - $BUILD_ENV + +start-as-if-foss: + extends: + - .as-if-foss:rules:start-as-if-foss + stage: prepare + needs: + - prepare-as-if-foss-branch + - prepare-as-if-foss-env + inherit: + variables: false # Otherwise variables will be messed up + variables: + START_AS_IF_FOSS: $START_AS_IF_FOSS + RUBY_VERSION: $RUBY_VERSION + ENABLE_RSPEC: $ENABLE_RSPEC + ENABLE_RSPEC_FAST_SPEC_HELPER: $ENABLE_RSPEC_FAST_SPEC_HELPER + ENABLE_RSPEC_UNIT: $ENABLE_RSPEC_UNIT + ENABLE_RSPEC_INTEGRATION: $ENABLE_RSPEC_INTEGRATION + ENABLE_RSPEC_MIGRATION: $ENABLE_RSPEC_MIGRATION + ENABLE_RSPEC_BACKGROUND_MIGRATION: $ENABLE_RSPEC_BACKGROUND_MIGRATION + ENABLE_RSPEC_SYSTEM: $ENABLE_RSPEC_SYSTEM + trigger: + project: gitlab-org/gitlab-foss + branch: as-if-foss/${CI_COMMIT_REF_NAME} + strategy: depend diff --git a/.gitlab/ci/qa-common/variables.gitlab-ci.yml b/.gitlab/ci/qa-common/variables.gitlab-ci.yml index 2ac1121791d..8f24cf1f5e5 100644 --- a/.gitlab/ci/qa-common/variables.gitlab-ci.yml +++ b/.gitlab/ci/qa-common/variables.gitlab-ci.yml @@ -1,7 +1,6 @@ # Default variables for package-and-test variables: - USE_OLD_RUBY_VERSION: "true" REGISTRY_HOST: "registry.gitlab.com" REGISTRY_GROUP: "gitlab-org" ALLURE_JOB_NAME: $CI_PROJECT_NAME diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index d26df15412f..b7716fc280e 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -90,9 +90,8 @@ trigger-omnibus: TOP_UPSTREAM_SOURCE_PROJECT: $CI_PROJECT_PATH SECURITY_SOURCES: $SECURITY_SOURCES CACHE_UPDATE: $OMNIBUS_GITLAB_CACHE_UPDATE - USE_OLD_RUBY_VERSION: "true" - CACHE_EDITION: "GITLAB_RUBY3_0" - NEXT_RUBY_VERSION: "3.1.4" + CACHE_EDITION: $CACHE_EDITION + NEXT_RUBY_VERSION: $FULL_RUBY_VERSION BUILD_ON_ALL_OS: $OMNIBUS_GITLAB_BUILD_ON_ALL_OS SKIP_QA_TEST: "true" ee: $EE diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 58bd11e3d9e..8817f8707e9 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -21,7 +21,7 @@ if: '$FORCE_GITLAB_CI' .if-default-refs: &if-default-refs - if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_COMMIT_REF_NAME == "ruby3_1" || ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") || $CI_COMMIT_TAG || $FORCE_GITLAB_CI' + if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_COMMIT_REF_NAME =~ "^ruby\d+(_\d)*$" || ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") || $CI_COMMIT_TAG || $FORCE_GITLAB_CI' .if-default-branch-refs: &if-default-branch-refs if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_IID == null' @@ -59,18 +59,15 @@ .if-merge-request-targeting-stable-branch: &if-merge-request-targeting-stable-branch if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee|-jh)?$/' -.if-merge-request-labels-run-in-ruby3_0: &if-merge-request-labels-run-in-ruby3_0 - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_0/' - -.if-merge-request-labels-run-in-ruby3_1: &if-merge-request-labels-run-in-ruby3_1 - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/' - -.if-merge-request-labels-run-in-ruby3_2: &if-merge-request-labels-run-in-ruby3_2 - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_2/' +.if-merge-request-labels-run-in-ruby: &if-merge-request-labels-run-in-ruby + if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby\d+(_\d)*/' .if-merge-request-labels-as-if-foss: &if-merge-request-labels-as-if-foss if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/' +.if-merge-request-labels-as-if-foss-cross-project: &if-merge-request-labels-as-if-foss-cross-project + if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss-cross-project/' + .if-merge-request-labels-as-if-jh: &if-merge-request-labels-as-if-jh if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-jh/' @@ -125,8 +122,8 @@ .if-default-branch-schedule-nightly: &if-default-branch-schedule-nightly if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"' -.if-ruby3_1-branch-schedule-nightly: &if-ruby3_1-branch-schedule-nightly - if: '$CI_COMMIT_BRANCH == "ruby3_1" && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"' +.if-ruby-branch-schedule-nightly: &if-ruby-branch-schedule-nightly + if: '$CI_COMMIT_BRANCH =~ "^ruby\d+(_\d)*$" && $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "nightly"' .if-security-schedule: &if-security-schedule if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_PIPELINE_SOURCE == "schedule"' @@ -161,8 +158,8 @@ .if-dot-com-gitlab-org-and-security-tag: &if-dot-com-gitlab-org-and-security-tag if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_COMMIT_TAG' -.if-ruby3_1-branch: &if-ruby3_1-branch - if: '$CI_COMMIT_BRANCH == "ruby3_1" || $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/' +.if-ruby-branch: &if-ruby-branch + if: '$CI_COMMIT_BRANCH =~ "^ruby\d+(_\d)*$" || $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby\d+(_\d)*/' #################### # Changes patterns # @@ -911,7 +908,7 @@ - <<: *if-dot-com-gitlab-org-schedule variables: ARCH: amd64,arm64 - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch - !reference [".releases:rules:canonical-dot-com-gitlab-stable-branch-only-setup-test-env-patterns", rules] .build-images:rules:build-qa-image-as-if-foss: @@ -947,7 +944,7 @@ # The rest are included to be consistent with .qa:rules:e2e:test-on-gdk - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch # We include the job under the matching conditions below, but unlike in .qa:rules:e2e:test-on-gdk we don't need to # set OMNIBUS_GITLAB_BUILD_ON_ALL_OS when testing against GDK - <<: *if-merge-request @@ -979,7 +976,7 @@ when: never - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch - <<: *if-merge-request-labels-run-review-app - <<: *if-auto-deploy-branches - <<: *if-default-refs @@ -1073,8 +1070,10 @@ ###################### .ci-templates:rules:shellcheck: rules: - - changes: *ci-templates-patterns - - changes: + - <<: *if-default-refs + changes: *ci-templates-patterns + - <<: *if-default-refs + changes: - scripts/lint_templates_bash.rb ###################### @@ -1202,7 +1201,7 @@ changes: *setup-test-env-patterns - <<: *if-merge-request-labels-run-review-app - <<: *if-auto-deploy-branches - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch - <<: *if-default-refs changes: *ci-build-images-patterns - <<: *if-default-refs @@ -1227,6 +1226,7 @@ .frontend:rules:compile-test-assets: rules: + - if: '$ENABLE_RSPEC == "true"' - <<: *if-merge-request-labels-run-all-rspec - <<: *if-merge-request changes: *backend-patterns @@ -1514,7 +1514,7 @@ allow_failure: true - <<: *if-dot-com-gitlab-org-schedule allow_failure: true - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch # Rules to support .qa:rules:package-and-test-ee - <<: *if-merge-request changes: *dependency-patterns @@ -1543,10 +1543,7 @@ - !reference [".qa:rules:package-and-test-never-run", rules] - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns - - <<: *if-ruby3_1-branch - variables: - USE_OLD_RUBY_VERSION: 'false' - CACHE_EDITION: 'GITLAB_RUBY3_1' + - <<: *if-ruby-branch - <<: *if-merge-request changes: *dependency-patterns variables: @@ -1588,10 +1585,7 @@ - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns allow_failure: true - - <<: *if-ruby3_1-branch - variables: - USE_OLD_RUBY_VERSION: 'false' - CACHE_EDITION: 'GITLAB_RUBY3_1' + - <<: *if-ruby-branch allow_failure: true - <<: *if-merge-request changes: *dependency-patterns @@ -1639,10 +1633,7 @@ - !reference [".qa:rules:package-and-test-never-run", rules] - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns - - <<: *if-ruby3_1-branch - variables: - USE_OLD_RUBY_VERSION: 'false' - CACHE_EDITION: 'GITLAB_RUBY3_1' + - <<: *if-ruby-branch - <<: *if-merge-request # Certain components trigger a rebuild of the e2e GDK image so we want to test it too changes: *gdk-component-patterns @@ -1758,7 +1749,7 @@ - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns when: never - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch when: never - <<: *if-merge-request changes: *dependency-patterns @@ -1805,7 +1796,7 @@ - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns when: never - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch when: never - <<: *if-merge-request changes: *dependency-patterns @@ -1844,7 +1835,7 @@ - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns when: never - - <<: *if-ruby3_1-branch + - <<: *if-ruby-branch when: never - <<: *if-merge-request changes: *dependency-patterns @@ -1892,6 +1883,7 @@ ############### .rails:rules:setup-test-env: rules: + - if: '$ENABLE_RSPEC == "true"' - <<: *if-default-refs changes: *setup-test-env-patterns - <<: *if-merge-request-labels-run-all-rspec @@ -2013,6 +2005,7 @@ when: never - <<: *if-merge-request-labels-pipeline-expedite when: never + - if: '$ENABLE_RSPEC_MIGRATION == "true"' - <<: *if-merge-request-labels-run-all-rspec - <<: *if-merge-request changes: *core-backend-patterns @@ -2044,6 +2037,7 @@ .rails:rules:ee-and-foss-background-migration: rules: + - if: '$ENABLE_RSPEC_BACKGROUND_MIGRATION == "true"' - !reference [".rails:rules:ee-and-foss-migration", rules] - <<: *if-default-refs changes: *backend-patterns @@ -2068,6 +2062,7 @@ rules: - <<: *if-fork-merge-request when: never + - if: '$ENABLE_RSPEC_UNIT == "true"' - !reference [".rails:rules:ee-and-foss-default-rules", rules] - <<: *if-default-refs changes: *backend-patterns @@ -2078,6 +2073,7 @@ rules: - <<: *if-fork-merge-request when: never + - if: '$ENABLE_RSPEC_INTEGRATION == "true"' - !reference [".rails:rules:ee-and-foss-default-rules", rules] - <<: *if-default-refs changes: *backend-patterns @@ -2086,12 +2082,14 @@ rules: - <<: *if-fork-merge-request when: never + - if: '$ENABLE_RSPEC_SYSTEM == "true"' - !reference [".rails:rules:system-default-rules", rules] - <<: *if-default-refs changes: *code-backstage-patterns .rails:rules:ee-and-foss-fast_spec_helper: rules: + - if: '$ENABLE_RSPEC_FAST_SPEC_HELPER == "true"' - <<: *if-merge-request-labels-run-all-rspec - <<: *if-merge-request changes: *backend-patterns @@ -2815,7 +2813,7 @@ .setup:rules:verify-default-ruby: rules: - - <<: *if-merge-request-labels-run-in-ruby3_2 + - <<: *if-merge-request-labels-run-in-ruby .setup:rules:verify-tests-yml: rules: @@ -2871,6 +2869,7 @@ ####################### .test-metadata:rules:retrieve-tests-metadata: rules: + - if: '$ENABLE_RSPEC == "true"' - <<: *if-default-refs changes: *code-backstage-patterns - <<: *if-default-refs @@ -2922,6 +2921,16 @@ - <<: *if-default-refs changes: *lint-metrics-yaml-patterns +#################### +# as-if-foss rules # +#################### +.as-if-foss:rules:start-as-if-foss: + rules: + - if: '$AS_IF_FOSS_TOKEN == null' + when: never + - !reference [".strict-ee-only-rules", rules] + - <<: *if-merge-request-labels-as-if-foss-cross-project + ################## # as-if-jh rules # ################## diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 15f36957392..47bc73a9558 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -71,8 +71,7 @@ verify-default-ruby: - .setup:rules:verify-default-ruby stage: prepare script: - - echo 'Please remove label ~"pipeline:run-in-ruby3_2" so we do test against default Ruby version before merging the merge request' - - echo 'This does not work yet. See https://gitlab.com/gitlab-org/gitlab/-/issues/428537' + - echo 'Please remove label ~"pipeline:run-in-ruby3_2" or ~"pipeline:run-in-ruby3_0" so we do test against default Ruby version before merging the merge request' - exit 1 verify-tests-yml: @@ -207,8 +206,7 @@ trigger-omnibus-env: echo "OMNIBUS_GITLAB_CACHE_UPDATE=${OMNIBUS_GITLAB_CACHE_UPDATE:-false}" >> $BUILD_ENV for version_file in *_VERSION; do echo "$version_file=$(cat $version_file)" >> $BUILD_ENV; done echo "OMNIBUS_GITLAB_BUILD_ON_ALL_OS=${OMNIBUS_GITLAB_BUILD_ON_ALL_OS:-false}" >> $BUILD_ENV - echo "USE_OLD_RUBY_VERSION=${USE_OLD_RUBY_VERSION:-false}" >> $BUILD_ENV - echo "NEXT_RUBY_VERSION=${NEXT_RUBY_VERSION}" >> $BUILD_ENV + ruby -e 'puts "FULL_RUBY_VERSION=#{RUBY_VERSION}"' >> $BUILD_ENV echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV define_trigger_branch_in_build_env |