Skip to content
代码片段 群组 项目
代码所有者
将用户和群组指定为特定文件更改的核准人。 了解更多。
.gitlab-ci.yml 13.97 KiB
stages:
  - sync
  - preflight
  - prepare
  - build-images
  - fixtures
  - lint
  - test-frontend
  - test
  - post-test
  - review
  - qa
  - post-qa
  - pre-merge
  - pages
  - notify
  - release-environments
  - benchmark

# always use `gitlab-org` runners, however
# in cases where jobs require Docker-in-Docker, the job
# definition must be extended with `.use-docker-in-docker`
default:
  image: $DEFAULT_CI_IMAGE
  tags:
    - $DEFAULT_JOB_TAG
  # All jobs are interruptible by default
  interruptible: true
  # Default job timeout doesn't work: https://gitlab.com/gitlab-org/gitlab/-/issues/387528
  timeout: 90m

.default-ruby-variables: &default-ruby-variables
  RUBY_VERSION: "${RUBY_VERSION_DEFAULT}"
  OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_1"

.next-ruby-variables: &next-ruby-variables
  RUBY_VERSION: "${RUBY_VERSION_NEXT}"
  OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3_2"

.default-branch-pipeline-failure-variables: &default-branch-pipeline-failure-variables
  CREATE_RAILS_FLAKY_TEST_ISSUES: "true"
  CREATE_RAILS_SLOW_TEST_ISSUES: "true"
  CREATE_RAILS_TEST_FAILURE_ISSUES: "true"

.default-merge-request-variables: &default-merge-request-variables
  NO_SOURCEMAPS: "true"
  ADD_SLOW_TEST_NOTE_TO_MERGE_REQUEST: "true"
  FF_NETWORK_PER_BUILD: "true"
  FF_TIMESTAMPS: "true"

.if-merge-request-security-canonical-sync: &if-merge-request-security-canonical-sync
  if: '$CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == "gitlab-org/security/gitlab" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'

.if-not-security-canonical-sync: &if-not-security-canonical-sync
  if: '$CI_MERGE_REQUEST_SOURCE_PROJECT_PATH != "gitlab-org/security/gitlab" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_DEFAULT_BRANCH'

.if-merge-request-labels-run-with-rails-next: &if-merge-request-labels-run-with-rails-next
  if: '($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-with-rails-next/'

workflow:
  name: '$PIPELINE_NAME'
  rules:
    - if: '$CI_PIPELINE_SOURCE == "pipeline" && $GITALY_TEST'
      variables:
        <<: *default-ruby-variables
        PIPELINE_NAME: 'Gitaly Rails Test Pipeline'
    # If `$FORCE_GITLAB_CI` is set, create a pipeline.
    - if: '$FORCE_GITLAB_CI'
      variables:
        <<: *default-ruby-variables