Trace manually triggered downstream pipelines
What does this MR do and why?
Some jobs like wait:cng
and wait:omnibus
start downstream pipelines
without using the bridge job feature of GitLab because the
downstream pipeline is in a different GitLab instance.
This MR updates PipelineTracer::ProcessJobs
to check for a downstream pipeline by parsing job logs, and start a
trace of the downstream pipeline if one is found. Only some jobs that are known to trigger downstream pipelines are checked. This reduces the number of API calls.
There are 3 types of log messages that can be found in job logs that indicate a downstream pipeline has been triggered:
-
Checking status of pipeline -- {:pipeline=>""}
- This can be found inwait:cng
andwait:omnibus
. -
Triggered deployer pipeline -- {:url=>""}
- This can be found in jobs triggered by theDeployTrigger
class of Release-tools. -
Triggered downstream pipeline -- {:web_url=>""}
- This can be found in some QA jobs triggered by Deployer.
gitlab-com/gl-infra/delivery#2722 (closed)
Author Check-list
-
Has documentation been updated?
Edited by Reuben Pereira