############## # Conditions # ############## .if-default-refs-or-ce: &if-default-refs-or-ce if: '$RELEASE == null || $RELEASE =~ /gitlab-ce/ || $CI_MERGE_REQUEST_ID || $CI_COMMIT_REF_NAME == "master"' .if-default-refs-or-ee: &if-default-refs-or-ee if: '$RELEASE == null || $RELEASE =~ /gitlab-ee/ || $CI_MERGE_REQUEST_ID || $CI_COMMIT_REF_NAME == "master"' .if-not-gitlab-qa-release: &if-not-gitlab-qa-release if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null' .if-staging-and-not-release: &if-staging-and-not-release if: '$RELEASE == null && $CI_JOB_NAME =~ /staging/' .if-quarantine-or-custom-and-not-release: &if-quarantine-or-custom-and-not-release if: '$RELEASE == null && $CI_JOB_NAME =~ /quarantine|custom/' .if-quarantine-or-custom-and-ee-release: &if-quarantine-or-custom-and-ee-release if: '$RELEASE =~ /gitlab-ee/ && $CI_JOB_NAME =~ /quarantine|custom/' .if-quarantine-or-custom-and-ce-release: &if-quarantine-or-custom-and-ce-release if: '$RELEASE =~ /gitlab-ce/ && $CI_JOB_NAME =~ /quarantine|custom/' .if-quarantine-or-custom-and-merge-request: &if-quarantine-or-custom-and-merge-request if: '$CI_MERGE_REQUEST_ID && $CI_JOB_NAME =~ /quarantine|custom/' .if-tag-or-ee-release: &if-tag-or-ee-release if: '$CI_COMMIT_TAG || $RELEASE =~ /gitlab-ee/' .if-tag-or-ce-release: &if-tag-or-ce-release if: '$CI_COMMIT_TAG || $RELEASE =~ /gitlab-ce/' .if-tag-or-release: &if-tag-or-release if: '$CI_COMMIT_TAG || $RELEASE' .if-set-feature-flag: &if-set-feature-flag if: '$GITLAB_QA_OPTIONS =~ /--set-feature-flags/' ######### # Rules # ######### .rules:ce-qa: rules: - <<: *if-not-gitlab-qa-release changes: ["lib/**/version.rb"] when: never - <<: *if-tag-or-ee-release when: never - <<: *if-quarantine-or-custom-and-not-release when: manual - <<: *if-quarantine-or-custom-and-ce-release when: manual - <<: *if-quarantine-or-custom-and-merge-request when: manual - <<: *if-default-refs-or-ce .rules:ee-qa: rules: - <<: *if-not-gitlab-qa-release changes: ["lib/**/version.rb"] when: never - <<: *if-tag-or-ce-release when: never - <<: *if-quarantine-or-custom-and-not-release when: manual - <<: *if-quarantine-or-custom-and-ee-release when: manual - <<: *if-quarantine-or-custom-and-merge-request when: manual - <<: *if-default-refs-or-ee .rules:only-qa: rules: - <<: *if-not-gitlab-qa-release changes: ["lib/**/version.rb"] when: never - <<: *if-tag-or-release when: never - <<: *if-staging-and-not-release when: manual .rules:ce-never-when-triggered-by-feature-flag-definition-change: rules: - <<: *if-set-feature-flag when: never - !reference [".rules:ce-qa", rules] .rules:ee-never-when-triggered-by-feature-flag-definition-change: rules: - <<: *if-set-feature-flag when: never - !reference [".rules:ee-qa", rules] .rules:only-qa-never-when-triggered-by-feature-flag-definition-change: rules: - <<: *if-set-feature-flag when: never - !reference [".rules:only-qa", rules]