From 60dcc4744f302a7c0ee5b92b922e43858a2bbd83 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Tue, 14 Nov 2023 15:53:20 +0000 Subject: [PATCH] ci: explain what we mean by the various types of pipelines Part-of: --- .gitlab-ci.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9a82e41a578..807e67109e3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,25 @@ +# Types of CI pipelines: +# | pipeline name | context | description | +# |----------------------|-----------|-------------------------------------------------------------| +# | merge pipeline | mesa/mesa | pipeline running for an MR; if it passes the MR gets merged | +# | pre-merge pipeline | mesa/mesa | same as above, except its status doesn't affect the MR | +# | post-merge pipeline | mesa/mesa | pipeline immediately after merging | +# | fork pipeline | fork | pipeline running in a user fork | +# | scheduled pipeline | mesa/mesa | nightly pipelines, running every morning at 4am UTC | +# +# "context" indicates the permissions that the jobs get; notably, any +# container created in mesa/mesa gets pushed immediately for everyone to use +# as soon as the image tag change is merged. +# +# Merge pipelines contain all jobs that must pass before the MR can be merged. +# Pre-merge pipelines contain the exact same jobs as merge pipelines. +# Post-merge pipelines contain *only* the `pages` job that deploys the new +# version of the website. +# Fork pipelines contain everything. +# Scheduled pipelines only contain the container+build jobs, and some extra +# test jobs (typically "full" variants of pre-merge jobs that only run 1/X +# test cases), but not a repeat of the merge pipeline jobs. + workflow: rules: # do not duplicate pipelines on merge pipelines