aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.d/base.yml
blob: e6953c77ae3d8108300c53221c8d672dd6c683b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

# The order of rules defined here is critically important.
# They are evaluated in order and first match wins.
#
# Thus we group them into a number of stages, ordered from
# most restrictive to least restrictive
#
.base_job_template:
  rules:
    #############################################################
    # Stage 1: exclude scenarios where we definitely don't
    # want jobs to run
    #############################################################

    # Cirrus jobs can't run unless the creds / target repo are set
    - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == "" || $CIRRUS_API_TOKEN == "")'
      when: never

    # Jobs only intended for forks should always be skipped on upstream
    - if: '$QEMU_JOB_ONLY_FORKS == "1" && $CI_PROJECT_NAMESPACE == "qemu-project"'
      when: never


    #############################################################
    # Stage 2: fine tune execution of jobs in specific scenarios
    # where the catch all logic is inapprorpaite
    #############################################################

    # Optional jobs should not be run unless manually triggered
    - if: '$QEMU_JOB_OPTIONAL'
      when: manual
      allow_failure: true


    #############################################################
    # Stage 3: catch all logic applying to any job not matching
    # an earlier criteria
    #############################################################

    # Jobs can run if any jobs they depend on were successfull
    - when: on_success