-
Notifications
You must be signed in to change notification settings - Fork 164
Migrate concourse release pipeline to GitHub actions #5794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Downloading operator-sdk 1.36.0 because this was the version we used in the concourse pipeline; We can rethink this in a follow up and try newer versions
Moved GCR deployer step to a point where we updated schema.yaml (After csv bundle PR is merged); uploaded Changelog as artifact to be able to use it later and set it in the Chart.yaml
The scripts deal with setting properties in the respective bundle yamls and so on
Logs in into our team user, forks respective repo, checks out a branch, pushes correct marketplace specific bundles to branch
avorima
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
last few comments, LGTM otherwise.
Incredible-O
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but we'll need to address the following issues after merging this:
- Break dependency on
prepare-build-variables.shscript (see #5780) - Use GitHub apps everywhere, deprecating classic PATs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR migrates the Dynatrace Operator release pipeline from Concourse to GitHub Actions, automating CSV bundle generation and marketplace repository updates. The migration eliminates the need for the external Concourse pipeline while maintaining all release functionality within GitHub's ecosystem.
Key changes:
- Automated CSV bundle generation and updates via pull requests on release branches
- Four marketplace repository fork creation (community, community-prod, certified, redhat) with operator-specific bundles
- GCR deployer image build triggered by CSV bundle PR merges
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/release.yaml |
Removed GCR deployer build from main release; added CSV bundle update job with changelog artifact handling |
.github/workflows/gcr-deployer-image.yaml |
New workflow to build GCR deployer image when CSV bundle PRs merge to release branches |
.github/workflows/create-marketplaces-forks.yaml |
New workflow that creates forks and pushes marketplace-specific bundles using matrix strategy for parallel execution |
.github/scripts/release/directory_version.py |
Utility script to determine the latest semantic version from directory names |
.github/scripts/release/csv/make_release_csv.py |
Script to prepare CSV files with marketplace-specific configurations and image references |
.github/scripts/release/csv/finalize_csv_files.py |
Script to finalize CSV files by setting timestamps and olm.skipRange annotations |
.github/actions/update-csv-bundles/action.yml |
Composite action that generates OLM bundles for both platforms and creates PR with updated CSV files |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
This reverts commit bc2fec1.
andriisoldatenko
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code LGTM!
Description
This PR migrates everything that was done in our concourse release pipeline to GitHub Actions.
Recap:
Concourse did at first get latest release branch ✅
Then it tried to get the next version (newest tag) ✅
Then it did image preflight ✅
Then it prepared files for CSV bundle generation ❌
Then it prepared helm index update ✅
Then it forked all the marketplace repos, pushed marketplace specific bundles ❌
So as you can see the thing that was added was the generation of the CSV bundles, create a PR from
csv-*torelease-*that updates the bundles; when this is merged it triggers 5 steps:schema.yamlthe GCR deployer image; pushes itcommunity-operatorsrepo, checks out branch, pushes specific bundlescommunity-operators-prodrepo, checks out branch, pushes specific bundlesredhat-marketplacesrepo, checks out branch, pushes specific bundlescertified-operatorsrepo, checks out branch, pushes specific bundlesThis is all done by our team user (Added repository secrets for this, with name, email and PAT)
DAQ-12237
How can this be tested?
Have a look at my fork
Have a look at the actions.
Have a look at the merged PRs -> Those are the updated CSV bundles; compare it with our old CSV bundle PRs: #5672
Have a look at the forks from the 4 marketplaces:
Check the branches! There should always be a branch
operator-version-x.x.xhave a look at the commit, compare it with previous merged PRs!for 1.7.2:
redhat-openshift-ecosystem/community-operators-prod#8141
redhat-openshift-ecosystem/certified-operators#6997
k8s-operatorhub/community-operators#7098
redhat-openshift-ecosystem/redhat-marketplace-operators#1170
ℹ️ The GCR Deployer step works - we already used it in
1.7.2and1.6.3Please double check in the workflow files if missed to copy any helper script, I tried to group the commits as good as possible, however I know it is still a lot.
EDIT:
Newest version here you can see the creation of the forks with matrices: https://github.com/waodim/dynatrace-operator/actions/runs/20066297741