Skip to content
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

Tarball on rocm tags and MAINTAINERS guide #402

Merged
merged 10 commits into from
Sep 24, 2024
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)
Loading