Learn more about these different git repos.
Other Git URLs
Currently, when a PR is created or merged, the following events happen: - waiverdb-polling-for-prs/waiverdb-polling-for-masster is aware of the change, trigger a waiverdb-dev job run, and waits for it to stop. - waiverdb-dev runs basic checks, unit tests, rpm build, container build, and an integration test (by triggering a waiverdb-integration-test job run), and waits for all sub tasks to complete. - waiverdb-polling-for-prs/waiverdb-polling-for-masster updates the PR status/makes a comment on Pagure/sends an email about the results.
waiverdb-polling-for-prs/waiverdb-polling-for-masster
waiverdb-dev
waiverdb-integration-test
So waiverdb-polling-for-prs/waiverdb-polling-for-masster job runs can't quit until children job runs exit. Even further, the code of Jenkins-Pagure integration is in the polling jobs, make it hard to retire those polling jobs once UMB triggers are available.
The new design is to create 2 separated jobs waiverdb-premerge and waiverdb-postmerge for different workflows. waiverdb-premerge and waiverdb-postmerge will responsible for chaining jobs for needed tasks, and update the PR status or make a comment eventually. Like this:
waiverdb-premerge
waiverdb-postmerge
waiverdb-polling-for-prs
waiverdb-stage-integration-test
waiverdb-promote-to-stage
Those reusable Jenkins jobs (like waiverdb-dev waiverdb-integration-test) may be replaced with Groovy function calls in the future if the shared library is introduced (https://pagure.io/waiverdb/issue/259).
Do you think this worth doing?
Yes, I think this is a great idea! I was actually just looking at the WaiverDB setup, to see how I could reuse it for Koji-MBS integration testing, and I admit that the flow was a little confusing. I think the design you propose is a lot simpler, and has the potential for improved reuse. A couple comments:
dev
repotracker
stage
waiverdb-promoting-to-stage
prod
I think this further decouples the jobs, and allows for greater use of ResultsDB and Greenwave. What do you think?
@mikeb I like the idea of further decoupling with repotracker. I will think it over and follow up your suggestions later.
One question, can you point me something about repotracker? Does a tag change in quay.io automatically trigger a repotracker message? What about docker-registry.engineering.redhat.com?
quay.io
docker-registry.engineering.redhat.com
@mikeb Further thoughts on simplify the pipeline code. Many lines of code in the pipeline code is about passing and extracting the parameters (because we want to deploy many instances of CI pipelines). We can have a config file in the repo to reduce those parameters.
@rayson Sure, I've been meaning to record a demo explaining what repotracker is. I'll send you a link when it's available.
I think a config file is a good idea, if it will simplify the pipeline code.
@mikeb Thank you.
@mikeb I've added a JIRA card to my to-do list about the integration with repotracker.
Fixed by #292
Metadata Update from @rayson: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Log in to comment on this ticket.