Add release tag and GitHub release automation script for TheRock and ROCm submodules#51
Add release tag and GitHub release automation script for TheRock and ROCm submodules#51amd-chiranjeevi wants to merge 4 commits into
Conversation
|
Hi @araravik-psd |
araravik-psd
left a comment
There was a problem hiding this comment.
Hi @amd-chiranjeevi, I left a few review comments. Since the current test plan is fully manual, it would be worth adding unit tests with mocked subprocess calls for build_plan, execute_plan, convert_to_ssh, and get_submodule_url_map. Could we open a follow-up issue to track these tests?
| ) | ||
| parser.add_argument( | ||
| "-B", | ||
| "--branch-name", |
There was a problem hiding this comment.
I see branch-name is collected in the script, but dont see it getting used in the script?
There was a problem hiding this comment.
It being used here
self.release_branch: str = cli_args.branch_name
| ], | ||
| cwd=info.path, | ||
| ) | ||
| successful_components[comp] = info |
There was a problem hiding this comment.
comp is added to successful_components here, before gh release create is attempted. If release creation fails below, it gets added to failed_components too, so it appears in both — and the final summary counts it as succeeded. Move this line to after the release creation block, or remove it from successful_components in the release creation except handler.
| f"Cloning TheRock repo from {self.rock_url} into {clone_dir}" | ||
| ) | ||
| self.run_command( | ||
| ["git", "clone", str(self.rock_url), str(clone_dir)], |
There was a problem hiding this comment.
No subprocess timeouts, a hung git clone or git fetch will block indefinitely, which is risky in CI if we have it in a workflow, can we add timeouts for clone or fetch throughout the file?
yeah, I opened a followup Issue #66 , will add changes in followup PR |
Motivation
After release branches are cut, annotated tags and GitHub releases need to be created across TheRock and all its tracked ROCm submodules. Doing this manually for every submodule is tedious and error-prone. This script automates tagging, tarball generation for mono-repos, and GitHub release creation in a single run.>
Technical Details
Test Plan
Test Result