]> git.proxmox.com Git - mirror_qemu.git/blame - .gitlab-ci.d/base.yml
block/copy-before-write: implement cbw-timeout option
[mirror_qemu.git] / .gitlab-ci.d / base.yml
CommitLineData
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 15 # Cirrus jobs can't run unless the creds / target repo are set
34776d80 16 - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == null || $CIRRUS_API_TOKEN == null)'
00125414
DB
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