diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index f1244bcd8..2b64bbd5d 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -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 }} @@ -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 diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 000000000..0ee7f23da --- /dev/null +++ b/MAINTAINERS.md @@ -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. diff --git a/utils/ver_check.py b/utils/ver_check.py index 13bf9dbab..c50fcdf26 100755 --- a/utils/ver_check.py +++ b/utils/ver_check.py @@ -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)