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