2 # The order of rules defined here is critically important.
3 # They are evaluated in order and first match wins.
5 # Thus we group them into a number of stages, ordered from
6 # most restrictive to least restrictive
10 #############################################################
11 # Stage 1: exclude scenarios where we definitely don't
13 #############################################################
15 # Cirrus jobs can't run unless the creds / target repo are set
16 - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == "" || $CIRRUS_API_TOKEN == "")'
19 # Jobs only intended for forks should always be skipped on upstream
20 - if: '$QEMU_JOB_ONLY_FORKS == "1" && $CI_PROJECT_NAMESPACE == "qemu-project"'
24 #############################################################
25 # Stage 2: fine tune execution of jobs in specific scenarios
26 # where the catch all logic is inapprorpaite
27 #############################################################
29 # Optional jobs should not be run unless manually triggered
30 - if: '$QEMU_JOB_OPTIONAL'
35 #############################################################
36 # Stage 3: catch all logic applying to any job not matching
38 #############################################################
40 # Jobs can run if any jobs they depend on were successfull