Skip to content

Commit

Permalink
Tarball on rocm tags and MAINTAINERS guide (#402)
Browse files Browse the repository at this point in the history
* Package release tarball on rocm tags and add a MAINTAINERS guide to outline release procedure

Signed-off-by: coleramos425 <colramos@amd.com>

* Apply linting feedback

Signed-off-by: coleramos425 <colramos@amd.com>

* Update links in MAINTAINERS for new branches

Signed-off-by: coleramos425 <colramos@amd.com>

* Update MAINTAINERS.md for changelog formatting

Signed-off-by: coleramos425 <colramos@amd.com>

* Update Omniperf ver checker to allow tags with rocm- prefix

Signed-off-by: coleramos425 <colramos@amd.com>

* Add step to packaging workflow to upload release tarball to release

Signed-off-by: coleramos425 <colramos@amd.com>

* Synax change for release name in packaging action

Signed-off-by: coleramos425 <colramos@amd.com>

* Update MAINTAINERS for instuctions on ROCm releases

Signed-off-by: coleramos425 <colramos@amd.com>

* Update softprops pluvin to v2 and remove release name

Removing the release name enables us to modify an existing release with the matching tag

Signed-off-by: coleramos425 <colramos@amd.com>

* Remove draft option on softprops plugin

Signed-off-by: coleramos425 <colramos@amd.com>

---------

Signed-off-by: coleramos425 <colramos@amd.com>
  • Loading branch information
coleramos425 committed Sep 25, 2024
1 parent c48e6e3 commit 0d15023
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
tags:
- "v[1-9].[0-9]+.[0-9]+*"
- "rocm-[0-9]+.[0-9]+.[0-9]+*"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down Expand Up @@ -42,3 +43,19 @@ jobs:
with:
name: omniperf-${{github.ref_name}}.tar.gz
path: build/omniperf-${{github.ref_name}}.tar.gz
- name: Set version
run: echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV
- name: Determine release name
run: |
if [[ ${{github.ref_name}} == rocm-* ]]; then
echo "RELEASE_NAME=Omniperf ${{ env.VERSION }} for ${{github.ref_name}}"
else
echo "RELEASE_NAME=Omniperf ${{ env.VERSION }}"
fi >> $GITHUB_ENV
- name: Upload tarball Release Asset
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'ROCm/omniperf'
with:
fail_on_unmatched: True
files: |
build/omniperf-${{github.ref_name}}.tar.gz
29 changes: 29 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Maintainers Guide to Omniperf

## Publishing a release

Before publishing a new Omniperf release, please review this checklist to ensure all prerequisites are met:

1) **Ensure [VERSION](VERSION) file is updated** to reflect your desired release version.
2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all the desired patches from the development branch to our stable mainline. Click [here](https://github.com/ROCm/omniperf/compare/amd-mainline...amd-staging) to begin that process.
3) **Update [CHANGES](CHANGES)** to reflect all major modifications to the codebase since the last release. When modifying [CHANGES](CHANGES) please ensure formatting is consistent with the rest of the ROCm software stack. See [this template](https://github.com/ROCm/hipTensor/blob/develop/CHANGELOG.md) for reference.
4) **Confirm all CI tests are passing**. You can easily confirm this by peeking the passing status of all GitHub continuous integration tests.
5) **Create a tag from `amd-mainline`**. More information on tagging can be found at [Git Docs - Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging).

> [!NOTE]
Note: A successful tag should trigger the [packaging action](.github/workflows/packaging.yml) which will produce a tarball artifact. **This artifact needs to be included as an asset in your release**. Please find that the [packaging action](.github/workflows/packaging.yml) will automatically create a draft release with your tarball attached.

Once you've completed the above checklist, you are ready to publish your release. Please ensure you follow formatting from [past Omniperf releases](https://github.com/ROCm/omniperf/releases) for consistency. Some important aspects of our release formatting include:

- Date of release is included in "Release Title".
- Updates are called out in "Release Description". Updates should mirror those listed in [CHANGES](CHANGES).
- Links to documentation and associated release tarball are called out in "Release Description".
- The tarball artifact from the corresponding tag is added to "Release Assets".

### Publishing a release for ROCm

If you are preparing for a new ROCm release, note that the [rocm-ci](https://github.com/rocm-ci) bot managed by DevOps will be triggering a tag automatically. This tag will follow the format `rocm-X.X.X`.

Traditionally, we will bump the Omniperf [VERSION](VERSION) with a new ROCm release. When we bump the version and reach the prerequisite step (5) above, try tagging with `vX.X.X` to validate the release tarball generated by the [packaging action](.github/workflows/packaging.yml).

In addition to the prerequisites mentioned above, please make sure that all changes have been merged from `amd-staging` -> `release/rocm-rel-X.X.X` to ensure that the "rocm-ci" bot will capture all your changes. It is easiest to file a single pull request ahead of the ROCm release.
3 changes: 3 additions & 0 deletions utils/ver_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
elif tag.startswith(repoCheck + "-"):
print("OK: allowed match with extra delimiter")
exit(0)
elif tag.startswith("rocm-"):
print("OK: allowed match with 'rocm-' prefix")
exit(0)
else:
print("FAIL: no match - double check top-level VERSION file")
exit(1)

0 comments on commit 0d15023

Please sign in to comment.