Skip to content

Nightly Staging Release #14

Nightly Staging Release

Nightly Staging Release #14

name: Nightly Staging Release
on:
schedule:
- cron: "0 10 * * *"
workflow_dispatch:
inputs:
permissions:
contents: write
concurrency:
# A PR number if a pull request and otherwise the commit hash. This cancels
# queued and in-progress runs for the same PR (presubmit) or commit
# (postsubmit). The workflow name is prepended to avoid conflicts between
# different workflows.
group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
cancel-in-progress: true
jobs:
setup:
name: Setup
runs-on: ubuntu-latest
outputs:
package_version: ${{ steps.compute_version.outputs.package_version }}
tag_name: ${{ steps.compute_version.outputs.tag_name }}
release_id: ${{ steps.create_release.outputs.id }}
release_upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Checking out repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Compute version
id: compute_version
run: |
package_version="nightly-staging-$(printf '%(%Y%m%d)T.${{ github.run_number }}')"
tag_name="${package_version}"
echo "package_version=${package_version}" >> $GITHUB_ENV
echo "package_version=${package_version}" >> $GITHUB_OUTPUT
echo "tag_name=${tag_name}" >> $GITHUB_ENV
echo "tag_name=${tag_name}" >> $GITHUB_OUTPUT
- name: Updating release tag
run: |
git tag "${tag_name}"
git push origin "${tag_name}"
- name: Create Release
id: create_release
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.tag_name }}
release_name: ${{ env.tag_name }}
body: |
Automatic nightly release of ROCM staging branches.
draft: true
prerelease: true
build_linux_packages:
name: Build Linux Packages
needs: setup
uses: ./.github/workflows/build_linux_packages.yml
with:
package_version: ${{ needs.setup.outputs.package_version }}
upload_release_assets:
name: Upload Release Assets
needs: [setup, build_linux_packages]
runs-on: ubuntu-latest
steps:
- name: Checking out repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Download Linux Artifacts
uses: actions/download-artifact@v4
with:
path: linux-x86_64
pattern: TheRock-*-linux-x86_64-*
merge-multiple: true
- name: List Files
run: |
ls -l linux-x86_64
- name: Upload Release Assets
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ needs.setup.outputs.tag_name }} linux-x86_64/*
finalize_release:
name: Finalise Release
# TODO: Add testing jobs to needs
needs: [setup, upload_release_assets]
runs-on: ubuntu-latest
steps:
- name: Checking out repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Mark Release Non Draft
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release edit ${{ needs.setup.outputs.tag_name }} --draft=false