]>
Commit | Line | Data |
---|---|---|
6a0e7ea7 DB |
1 | |
2 | # The order of rules defined here is critically important. | |
3 | # They are evaluated in order and first match wins. | |
4 | # | |
5 | # Thus we group them into a number of stages, ordered from | |
6 | # most restrictive to least restrictive | |
7 | # | |
8 | .base_job_template: | |
9 | rules: | |
10 | ############################################################# | |
11 | # Stage 1: exclude scenarios where we definitely don't | |
12 | # want jobs to run | |
13 | ############################################################# | |
14 | ||
00125414 DB |
15 | # Cirrus jobs can't run unless the creds / target repo are set |
16 | - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == "" || $CIRRUS_API_TOKEN == "")' | |
17 | when: never | |
18 | ||
e312d1fd DB |
19 | # Publishing jobs should only run on the default branch in upstream |
20 | - if: '$QEMU_JOB_PUBLISH == "1" && $CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH' | |
21 | when: never | |
22 | ||
23 | # Non-publishing jobs should only run on staging branches in upstream | |
24 | - if: '$QEMU_JOB_PUBLISH != "1" && $CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH !~ /staging/' | |
25 | when: never | |
26 | ||
16fee101 DB |
27 | # Jobs only intended for forks should always be skipped on upstream |
28 | - if: '$QEMU_JOB_ONLY_FORKS == "1" && $CI_PROJECT_NAMESPACE == "qemu-project"' | |
29 | when: never | |
30 | ||
28357dc5 DB |
31 | # Forks don't get pipelines unless QEMU_CI=1 or QEMU_CI=2 is set |
32 | - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != "qemu-project"' | |
33 | when: never | |
34 | ||
e312d1fd DB |
35 | # Avocado jobs don't run in forks unless $QEMU_CI_AVOCADO_TESTING is set |
36 | - if: '$QEMU_JOB_AVOCADO && $QEMU_CI_AVOCADO_TESTING != "1" && $CI_PROJECT_NAMESPACE != "qemu-project"' | |
37 | when: never | |
38 | ||
6a0e7ea7 DB |
39 | |
40 | ############################################################# | |
41 | # Stage 2: fine tune execution of jobs in specific scenarios | |
42 | # where the catch all logic is inapprorpaite | |
43 | ############################################################# | |
44 | ||
00125414 DB |
45 | # Optional jobs should not be run unless manually triggered |
46 | - if: '$QEMU_JOB_OPTIONAL' | |
47 | when: manual | |
48 | allow_failure: true | |
49 | ||
e312d1fd DB |
50 | # Skipped jobs should not be run unless manually triggered |
51 | - if: '$QEMU_JOB_SKIPPED' | |
52 | when: manual | |
53 | allow_failure: true | |
54 | ||
55 | # Avocado jobs can be manually start in forks if $QEMU_CI_AVOCADO_TESTING is unset | |
56 | - if: '$QEMU_JOB_AVOCADO && $CI_PROJECT_NAMESPACE != "qemu-project"' | |
57 | when: manual | |
58 | allow_failure: true | |
59 | ||
6a0e7ea7 DB |
60 | |
61 | ############################################################# | |
62 | # Stage 3: catch all logic applying to any job not matching | |
63 | # an earlier criteria | |
64 | ############################################################# | |
65 | ||
28357dc5 DB |
66 | # Forks pipeline jobs don't start automatically unless |
67 | # QEMU_CI=2 is set | |
68 | - if: '$QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != "qemu-project"' | |
69 | when: manual | |
70 | ||
6a0e7ea7 DB |
71 | # Jobs can run if any jobs they depend on were successfull |
72 | - when: on_success |