Rework pipeline triggers for MRs

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2023-03-15 13:49:55 +02:00
parent fdd198b0e8
commit ef1fe3ab41
2 changed files with 28 additions and 10 deletions

View File

@ -23,6 +23,7 @@ variables:
BUILD_MULTI_ARCH_IMAGES: "true" BUILD_MULTI_ARCH_IMAGES: "true"
stages: stages:
- trigger
- image - image
- lint - lint
- go-checks - go-checks
@ -34,22 +35,44 @@ stages:
- scan - scan
- release - release
workflow: .pipeline-trigger-rules:
rules: rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' # We trigger the pipeline if started manually
- if: $CI_PIPELINE_SOURCE == "web" - if: $CI_PIPELINE_SOURCE == "web"
# We trigger the pipeline on the main branch
- if: $CI_COMMIT_BRANCH == "main" - if: $CI_COMMIT_BRANCH == "main"
# We trigger the pipeline on the release- branches
- if: $CI_COMMIT_BRANCH =~ /^release-.*$/ - if: $CI_COMMIT_BRANCH =~ /^release-.*$/
# We trigger the pipeline on tags
- if: $CI_COMMIT_TAG && $CI_COMMIT_TAG != "" - if: $CI_COMMIT_TAG && $CI_COMMIT_TAG != ""
workflow:
rules:
# We trigger the pipeline on a merge request
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
# We then add all the regular triggers
- !reference [.pipeline-trigger-rules, rules]
# The main or manual job is used to filter out distributions or architectures that are not required on
# every build.
.main-or-manual: .main-or-manual:
rules: rules:
- if: $CI_COMMIT_BRANCH == "main" - !reference [.pipeline-trigger-rules, rules]
- if: $CI_COMMIT_BRANCH =~ /^release-.*$/
- if: $CI_COMMIT_TAG && $CI_COMMIT_TAG != ""
- if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_PIPELINE_SOURCE == "schedule"
when: manual when: manual
# The trigger-pipeline job adds a manualy triggered job to the pipeline on merge requests.
trigger-pipeline:
stage: trigger
script:
- echo "starting pipeline"
rules:
- !reference [.main-or-manual, rules]
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: manual
allow_failure: false
- when: always
# Define the distribution targets # Define the distribution targets
.dist-amazonlinux2: .dist-amazonlinux2:
rules: rules:

View File

@ -22,11 +22,6 @@ build-dev-image:
- make .build-image - make .build-image
- docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}" - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
- make .push-build-image - make .push-build-image
rules:
- !reference [.main-or-manual, rules]
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
- when: always
.requires-build-image: .requires-build-image:
image: "${BUILDIMAGE}" image: "${BUILDIMAGE}"