infra - Use pipeline for daily builds
Run daily jobs in a Jenkins Pipeline. This would allow us to better aggregate the test results.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Low
- Drafter:
- Alice Chen
- Direction:
- Needs approval
- Assignee:
- Steve Varnau
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Using a pipeline is not required. jenkins considers jobs linked (upstream/
This technique does not work. Jenkins can correlate jobs based on artifacts, but it does not consider them "downstream" for purposes of aggregation. So for aggregation to work, the jobs need to be actually triggered from the parent job.
Unfortunately, triggering jobs downstream in this way defeats Zuul (gearman) management of the jobs. For instance, when the jobs should be cancelled, the downstream jobs continue to run. So, it is not clear if we can aggregate test results through the normal mechanisms.
To make this feature useful we'd also have to use junit reporting for all our tests, such as sql dev regressions.
Another idea is to use jenkins API to write an external tool to query and correlate jobs and aggregate data. This also seems problematic given the that there seems to be no api for the fingerprint info, at least in our current version of jenkins. Parsing the job descriptions to find all the test jobs might be possible, since zuul already gives the list there. That might miss some use cases like same builds being used in multiple queues such as check and check full. Would probably work for daily jobs.
Given the complexity with current tool set, I'm going to lower the priority of this project to shelve it for now.
Work Items
Work items:
Experiment with option to aggregate downstream tests: DONE
Dependency tree
* Blueprints in grey have been implemented.