Skip to content

Fix non-restarted skipped bridge jobs

Furkan Ayhan requested to merge 337320-restart-bridge-jobs into master

What does this MR do and why?

This MR fixes the problem of non-restarted skipped bridge jobs.

When retrying the whole pipeline, all skipped jobs should be "processed", which usually means "transition to created state".

We fixed this bug (!39989 (merged)) for "builds" but not for "bridges". In this MR, we started to use "processables" to include both.

Related to #337320 (closed)

Screenshots or screen recordings

When we retry the failed build, everything works as expected;

ok_retry_build

When we retry the whole pipeline, the bridge job does not retry.

bug_retry_pipeline

After this MR;

fixed_retry_pipeline

How to set up and validate locally

  1. Use this CI config
# .gitlab-ci.yml

build:
  stage: build
  script:
    - exit $((RANDOM % 2))

trigger_job:
  stage: deploy
  trigger:
    include: .child-pipeline.yml
# .child-pipeline.yml

deploy:
  stage: deploy
  script: exit 0
  1. Run a pipeline.
  2. If the build job fails, retry until it succeeds.
  3. See that trigger_job is still skipped.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Furkan Ayhan

Merge request reports