Message ID | 20230526101934.935969-6-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | gitlab: improvements to handling of stable staging branches | expand |
On 5/26/23 03:19, Daniel P. Berrangé wrote: > + # Upstream pipeline jobs start automatically unless told not to > + # by setting QEMU_CI=1 > + - if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~/staging/' > + when: manual > + variables: > + QEMU_CI_CONTAINER_TAG: $CI_COMMIT_REF_SLUG So.. in this case we don't want 'latest' for 'staging' because we may not run all jobs? Or should this have checked staging-X.Y, since the following rule will handle 'staging'? > + - if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM' > + when: manual > + r~
On Fri, May 26, 2023 at 09:04:34AM -0700, Richard Henderson wrote: > On 5/26/23 03:19, Daniel P. Berrangé wrote: > > + # Upstream pipeline jobs start automatically unless told not to > > + # by setting QEMU_CI=1 > > + - if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~/staging/' > > + when: manual > > + variables: > > + QEMU_CI_CONTAINER_TAG: $CI_COMMIT_REF_SLUG > > So.. in this case we don't want 'latest' for 'staging' because we may not > run all jobs? Or should this have checked staging-X.Y, since the following > rule will handle 'staging'? Yes, this was a mistake. My original v1 was in fact correct. With regards, Daniel
diff --git a/.gitlab-ci.d/base.yml b/.gitlab-ci.d/base.yml index 999149852e..739ec07d7b 100644 --- a/.gitlab-ci.d/base.yml +++ b/.gitlab-ci.d/base.yml @@ -109,6 +109,16 @@ variables: - if: '$QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' when: manual + # Upstream pipeline jobs start automatically unless told not to + # by setting QEMU_CI=1 + - if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /staging/' + when: manual + variables: + QEMU_CI_CONTAINER_TAG: $CI_COMMIT_REF_SLUG + + - if: '$QEMU_CI == "1" && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM' + when: manual + # Jobs can run if any jobs they depend on were successful - if: '$QEMU_JOB_SKIPPED && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /staging-[[:digit:]]+\.[[:digit:]]/' when: on_success
In forks QEMU_CI=1 can be used to create a pipeline but not auto-run any jobs. In upstream jobs always auto-run, which is equiv of QEMU_CI=2. This supports setting QEMU_CI=1 in upstream, to disable job auto-run. This can be used to preserve CI minutes if repushing a branch to staging with a specific fix that only needs testing in limited scenarios. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitlab-ci.d/base.yml | 10 ++++++++++ 1 file changed, 10 insertions(+)