msix: Assert that specified vector is in range
[qemu/kevin.git] / .gitlab-ci.d / base.yml
blob69b36c148a963fc1cf12fd53bee24965b32bc6e6
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
8 .base_job_template:
9   rules:
10     #############################################################
11     # Stage 1: exclude scenarios where we definitely don't
12     # want jobs to run
13     #############################################################
15     # Cirrus jobs can't run unless the creds / target repo are set
16     - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == null || $CIRRUS_API_TOKEN == null)'
17       when: never
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
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
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
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
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
40     #############################################################
41     # Stage 2: fine tune execution of jobs in specific scenarios
42     # where the catch all logic is inapprorpaite
43     #############################################################
45     # Optional jobs should not be run unless manually triggered
46     - if: '$QEMU_JOB_OPTIONAL'
47       when: manual
48       allow_failure: true
50     # Skipped jobs should not be run unless manually triggered
51     - if: '$QEMU_JOB_SKIPPED'
52       when: manual
53       allow_failure: true
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
61     #############################################################
62     # Stage 3: catch all logic applying to any job not matching
63     # an earlier criteria
64     #############################################################
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
71     # Jobs can run if any jobs they depend on were successfull
72     - when: on_success