xref: /openbmc/qemu/.gitlab-ci.d/base.yml (revision 16fee101)
16a0e7ea7SDaniel P. Berrangé
26a0e7ea7SDaniel P. Berrangé# The order of rules defined here is critically important.
36a0e7ea7SDaniel P. Berrangé# They are evaluated in order and first match wins.
46a0e7ea7SDaniel P. Berrangé#
56a0e7ea7SDaniel P. Berrangé# Thus we group them into a number of stages, ordered from
66a0e7ea7SDaniel P. Berrangé# most restrictive to least restrictive
76a0e7ea7SDaniel P. Berrangé#
86a0e7ea7SDaniel P. Berrangé.base_job_template:
96a0e7ea7SDaniel P. Berrangé  rules:
106a0e7ea7SDaniel P. Berrangé    #############################################################
116a0e7ea7SDaniel P. Berrangé    # Stage 1: exclude scenarios where we definitely don't
126a0e7ea7SDaniel P. Berrangé    # want jobs to run
136a0e7ea7SDaniel P. Berrangé    #############################################################
146a0e7ea7SDaniel P. Berrangé
1500125414SDaniel P. Berrangé    # Cirrus jobs can't run unless the creds / target repo are set
1600125414SDaniel P. Berrangé    - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == "" || $CIRRUS_API_TOKEN == "")'
1700125414SDaniel P. Berrangé      when: never
1800125414SDaniel P. Berrangé
19*16fee101SDaniel P. Berrangé    # Jobs only intended for forks should always be skipped on upstream
20*16fee101SDaniel P. Berrangé    - if: '$QEMU_JOB_ONLY_FORKS == "1" && $CI_PROJECT_NAMESPACE == "qemu-project"'
21*16fee101SDaniel P. Berrangé      when: never
22*16fee101SDaniel P. Berrangé
236a0e7ea7SDaniel P. Berrangé
246a0e7ea7SDaniel P. Berrangé    #############################################################
256a0e7ea7SDaniel P. Berrangé    # Stage 2: fine tune execution of jobs in specific scenarios
266a0e7ea7SDaniel P. Berrangé    # where the catch all logic is inapprorpaite
276a0e7ea7SDaniel P. Berrangé    #############################################################
286a0e7ea7SDaniel P. Berrangé
2900125414SDaniel P. Berrangé    # Optional jobs should not be run unless manually triggered
3000125414SDaniel P. Berrangé    - if: '$QEMU_JOB_OPTIONAL'
3100125414SDaniel P. Berrangé      when: manual
3200125414SDaniel P. Berrangé      allow_failure: true
3300125414SDaniel P. Berrangé
346a0e7ea7SDaniel P. Berrangé
356a0e7ea7SDaniel P. Berrangé    #############################################################
366a0e7ea7SDaniel P. Berrangé    # Stage 3: catch all logic applying to any job not matching
376a0e7ea7SDaniel P. Berrangé    # an earlier criteria
386a0e7ea7SDaniel P. Berrangé    #############################################################
396a0e7ea7SDaniel P. Berrangé
406a0e7ea7SDaniel P. Berrangé    # Jobs can run if any jobs they depend on were successfull
416a0e7ea7SDaniel P. Berrangé    - when: on_success
42