qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

base.yml (2830B)


      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 
     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
     18 
     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 
     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 
     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 
     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 
     39 
     40     #############################################################
     41     # Stage 2: fine tune execution of jobs in specific scenarios
     42     # where the catch all logic is inapprorpaite
     43     #############################################################
     44 
     45     # Optional jobs should not be run unless manually triggered
     46     - if: '$QEMU_JOB_OPTIONAL'
     47       when: manual
     48       allow_failure: true
     49 
     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 
     60 
     61     #############################################################
     62     # Stage 3: catch all logic applying to any job not matching
     63     # an earlier criteria
     64     #############################################################
     65 
     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 
     71     # Jobs can run if any jobs they depend on were successfull
     72     - when: on_success