-
Notifications
You must be signed in to change notification settings - Fork 36
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
Automated release operator workflow #1171
Automated release operator workflow #1171
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## release-process-enhancement #1171 +/- ##
==============================================================
Coverage ? 83.67%
==============================================================
Files ? 82
Lines ? 7117
Branches ? 0
==============================================================
Hits ? 5955
Misses ? 933
Partials ? 229
Flags with carried forward coverage won't be shown. Click here to find out more.
|
28367fd
to
3a1c55c
Compare
3a1c55c
to
d1bac94
Compare
8d8a86f
to
b0a573a
Compare
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.
Biggest concern is the creation of the pull request. It seems to be going to the wrong branch.
(.dependencies.console-plugin = strenv(CONSOLE_PLUGIN_VERSION)) | | ||
(.dependencies.wasm-shim = strenv(WASM_SHIM_VERSION)) | | ||
(.olm.default-channel = strenv(OLM_CHANNEL)) | | ||
(.olm.channels[0] = strenv(OLM_CHANNEL))' -i ./release.yaml |
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.
Here you are saying there is only ever one channels
. If it is a final release, as in going to the stable channel, would it not also be going on the alpha channel?
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.
As I've seen in the OLM docs, they show, as you mentioned, that it's possible to release the same operator bundle under different channels...however, they also state that is up to the maintainer to chose the channels and more important the upgrade and channel promotions. So far we are not using their recommended channel naming other than stable
, and from our part we've chosen to release anything else under alpha
and in the past preview
... I think either we still keep doing so, a simplistic way, or we will need to discuss how we will approach the upgrade and channel promotion for our operator. Maybe another question would be: Are we expecting to find an operator bundle that is released under alpha
channel also be in the stable
one and vice-versa? What would be the expectations of the OLM Subscriptions to those channels?
48f9be4
to
c391acd
Compare
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.
Looking at the sed command raises and interesting question. Should we be doing validation on the user input to ensure they are valid semver?
c391acd
to
aee7d43
Compare
### Notes | ||
* It's not possible to cherry-pick commits, the workflow will pick a branch/tag/commit and all the history behind to the PR. |
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.
This related to this, would also affect the manual approach.
The PR is opened with the changes from the prepare-release
, and some thing is missing from the release, lets say missing commit from main. That missing commit can be cherry picked to the branch which is the base targeting the release branch.
What should happen in that case? I am assuming the history of the base branch should be reordered to have the cherry picked commit before the release commit. The same would go for if during the review a wrong version is noticed. Would that be adding in a new commit or the release commit edited?
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.
Basically any change in the history of the branch could be done in the PR, manually.
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.
That I understand. The question would be should the history be reordered to ensure the Prepare release
commit is the head of the branch?
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.
It is looking good, could I ask you to tidy up the commit history and then I will approve it.
[ci] Setting OLM channel depending on prerelease input [ci] Fixing yq cmd updating release.yaml [ci] Fixing branching, prepare release scripts and dependencies [ci] Creating CR release branch on `Create Pull Request` step * Running Create Pull Request only if not triggered by ACT * In order to set the desired channel and default channel * Changed consolePlugin default to `0.0.0` * Also descriptions of inputs to semver [ci] Updated sed command to also work with `+build` tags Signed-off-by: dd di cesare <[email protected]>
Signed-off-by: dd di cesare <[email protected]>
3ff40f1
to
5fbc236
Compare
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.
Looks good to me
This PR introduces an automated process for releasing the Kuadrant Operator. Similar to the previous one, one needs to provide the following inputs:
gitRef
: Select the branch/tag/commit where you want to cut a release from.kuadrantOperatorVersion
: the Semantic Version of the desired release.authorinoOperatorVersion
: Authorino Operator bundle version (X.Y.Z)dnsOperatorVersion
: DNS Operator bundle version (X.Y.Z)wasmShimVersion
: WASM Shim version (X.Y.Z)consolePluginVersion
: ConsolePlugin version (X.Y.Z)olmChannel
: This will set the OLMchannels
anddefault-channel
.But instead of tagging and creating the release automatically, instead it creates a PR in the same fashion that dictates the Manual Workflow
Verification steps
Sadly, it's not possible at the moment to fully check the workflow, since it needs to be merged to main and we might need to do some cleaning in our release branches before triggering it. But at the time being, we could use Act:
and at the end of the step, the following:
| INFO[0000] All validation tests have completed successfully