feat(ci): automate release process#3148
feat(ci): automate release process#3148milinddethe15 wants to merge 17 commits intokubeflow:masterfrom
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Pull Request Test Coverage Report for Build 21821785755Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
636030e to
3291139
Compare
|
/retest |
Krishna-kg732
left a comment
There was a problem hiding this comment.
curious: the SDK release workflow uses OIDC trusted publishing for PyPI (no secrets needed), but this PR uses PYPI_API_TOKEN. Was there a specific reason for choosing the API token approach over trusted publishing? Just want to understand the tradeoff — both work fine for our release cadence, but OIDC avoids managing secrets
.github/workflows/release.yaml
Outdated
| exit 1 | ||
| fi | ||
|
|
||
| BRANCH="release-${VERSION}" |
There was a problem hiding this comment.
Existing release branches use release-X.Y format (release-1.9, release-2.0, release-2.1), per issue #2155. This will create release-2.2.0 instead. Should be :
| BRANCH="release-${VERSION}" | |
| MAJOR_MINOR=$(echo "$VERSION" | cut -d. -f1,2) | |
| BRANCH="release-${MAJOR_MINOR}" |
| @@ -0,0 +1,129 @@ | |||
| #!/usr/bin/env bash | |||
|
|
|||
| # Copyright 2024 The Kubeflow Authors. | |||
There was a problem hiding this comment.
| # Copyright 2024 The Kubeflow Authors. | |
| # Copyright 2026 The Kubeflow Authors. |
| echo "Running make generate" | ||
| make -C "$REPO_ROOT" generate | ||
| echo "Completed make generate" | ||
|
|
There was a problem hiding this comment.
| sed -i "s/__version__ = \".*\"/__version__ = \"$NEW_VERSION\"/" "$PYTHON_API_VERSION_FILE" | |
| echo "Updated Python API version to $NEW_VERSION" |
$PYTHON_API_VERSION_FILE is git-added but never modified by the script. The init.py version won't be updated, and check-release.yaml will fail on the mismatch. Add before git add:
|
@Krishna-kg732 It's a draft PR and If you'd like to work on it, please feel free to take it over since I won’t be able to work on it this month. |
|
@Krishna-kg732 Given that Trainer v2.2 release is coming, it would be great if you could finalize this work! |
|
Hi @Krishna-kg732 feel free to take this up. We do example change log generation with You can try replicating this. let me know if need more help for this. |
|
@Krishna-kg732 If you haven’t started yet, please wait until next week. I will try to work on it over the weekend. For this PR, the only remaining task is testing a release on the forked repo. |
I’ve already implemented the release workflow and will be opening a separate PR shortly. |
|
Hi @Krishna-kg732 actually we need this feature. Already raised PR for that, can you help to review that please. |
|
Thanks Akash, I’ll take a look at #3231 shortly and review it. |
793f2a7 to
133eff9
Compare
133eff9 to
49e0357
Compare
…n checks Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…eration Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…e build steps Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…kflow and upgrade git-cliff-action version Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…ption Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…tHub release Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…nding and simplify release name Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…eration and simplify workflow Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…ine tagging process Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…ration script Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
75b1b24 to
1d39734
Compare
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
|
I have tested this automation in my fork repo for release version Steps:
make release VERSION=4.0.0 GITHUB_TOKEN=<token>
3. Once the release PR is merged to master, [release](https://github.com/milinddethe15/kf-trainer/actions/runs/22284743190/job/64461002955) action will be triggered
where,
Chart:
Image:
Also added release doc for users to understand release flow: https://github.com/milinddethe15/kf-trainer/blob/feat/automate-release/docs/release/README.md |
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>




What this PR does / why we need it:
To release a newer version of trainer, user has to run
make release VERSION=1.0.0 GITHUB_TOKEN=<token>and open PR with the generated commit.PYPI_API_TOKENsecret in repo) and create a GitHub release using git-cliff-generated changelog.This methods ensures release PR can be created by anyone and multiple maintainers can approve a release by LGTM on PR.
More detail in: #3148 (comment)
Which issue(s) this PR fixes (optional, in
Fixes #<issue number>, #<issue number>, ...format, will close the issue(s) when PR gets merged):Fixes #2155
Checklist: