-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Automate edge releases #12175
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
Automate edge releases #12175
Conversation
6f1ef8e
to
b340f11
Compare
Followup to #12132 Now one only needs to tag in order to trigger the release. Please see the updated `RELEASE.md` file for the new instructions. The last action in the release workflow, `helm-publish`, now runs: - `bin/helm-bump-edge`: This has been modified to calculate the new edge version by inspecting https://run.linkerd.io/install-edge and bumping the version found there, using a new scheme `YYYY.M.N` (also droppping the `-edge` suffix) shared across all the charts (except for `partials`, `patch` and `linkerd-multicluster-link` which remain static). The `version` entry in the Chart.yaml files no longer needs to be manually updated, and its value is not used for the new version computation, so it was changed to `0.0.0-undefined`. Also note this script validates that the current git tag matches the expected new version. - `bin/helm-docs`: Called just to update the charts READMEs with the new version. We also still call it in the `helm.yml` workflow to check the values.yaml entries are in sync. So after any change to those values, we still need to manually run `bin/helm-docs`. - `bin/helm-build package`: As the previous two steps mutate the local checked out source, this no longer validates that there are no uncommited changes.
b340f11
to
e5d3000
Compare
gsutil cp gs://helm.linkerd.io/${{ inputs.branch }}/index.yaml target/helm/index-pre.yaml | ||
gsutil cp gs://helm.linkerd.io/edge/index.yaml target/helm/index-pre.yaml | ||
bin/helm-bump-edge | ||
bin/helm-docs |
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.
Since we now bundle this into the release process, are we able to remove the README.md files and helm-docs checks that run regularly? Or what's the value in preserving the generated files in the repo?
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.
We just get those files nicely rendered by github when browsing the repo. But they're also at artifacthub, so I'm not profoundly attached to them 🤷♂️
edge_tag_regex="edge-([0-9][0-9])\.([0-9]|[0-9][0-9])\.([0-9]+)" | ||
|
||
# Get the current edge version. | ||
url=https://run.linkerd.io/install-edge |
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.
Given that the edge- tag already specifies the edge version, do we need to recompute the new version independently? How do we ensure that the computed value and the actual tag don't differ?
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's not necessary to recompute the version but this avoids making mistakes. A few lines below it's ensured the tag and the computed version match.
Co-authored-by: Oliver Gould <[email protected]>
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.
🚢
Followup to #12132
Now one only needs to tag in order to trigger the release. Please see the updated
RELEASE.md
file for the new instructions.The last action in the release workflow,
helm-publish
, now runs:bin/helm-bump-edge
: This has been modified to calculate the new edge version by inspecting https://run.linkerd.io/install-edge and bumping the version found there, using a new schemeYYYY.M.N
(also droppping the-edge
suffix) shared across all the charts (except forpartials
,patch
andlinkerd-multicluster-link
which remain static). Theversion
entry in the Chart.yaml files no longer needs to be manually updated, and its value is not used for the new version computation, so it was changed to0.0.0-undefined
. Also note this script validates that the current git tag matches the expected new version.bin/helm-docs
: Called just to update the charts READMEs with the new version. We also still call it in thehelm.yml
workflow to check the values.yaml entries are in sync. So after any change to those values, we still need to manually runbin/helm-docs
.bin/helm-build package
: As the previous two steps mutate the local checked out source, this no longer validates that there are no uncommited changes.