Skip to content

Validate and Publish Release #1279

Validate and Publish Release

Validate and Publish Release #1279

# Publishes a draft snapshot, after performing validation to make sure all linux
# packages are stable.
name: Validate and Publish Release
on:
workflow_dispatch:
inputs:
release_id:
description: "Release id to publish"
required: true
package_version:
description: "Version of the package"
required: true
build_run_id:
description: "Run ID for the build_package.yml workflow that triggered this workflow"
required: true
jobs:
validate_packages:
name: "Validate packages"
# TODO(jennik): Look into testing windows and macos builds.
runs-on: ubuntu-24.04
steps:
- name: Download packages
id: download_packages
uses: dawidd6/action-download-artifact@5e780fc7bbd0cac69fc73271ed86edf5dcb72d67 # v2.26.0
with:
github_token: ${{secrets.WRITE_ACCESS_TOKEN}}
workflow: build_package.yml
run_id: ${{ github.event.inputs.build_run_id }}
- name: Extract and display downloaded files
run: |
tar -xf wheels-linux-x86_64-main-dist-linux/iree-dist-${{ github.event.inputs.package_version }}-linux-x86_64.tar.xz
pwd
ls -R
- name: Set up python
id: set_up_python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: "3.9"
- name: Install python packages
id: install_python_packages
run: |
python -m pip install -f file://$PWD/wheels-linux-x86_64-py-compiler-pkg/ iree-base-compiler[onnx]
python -m pip install -f file://$PWD/wheels-linux-x86_64-py-runtime-pkg/ iree-base-runtime
python -m pip install -f file://$PWD/wheels-linux-x86_64-py-tf-compiler-tools-pkg/ iree-tools-tflite iree-tools-tf
- name: Validate IREE Compiler Package
id: validate_compiler_package
run: |
echo "Testing compiler package:"
python -m iree.compiler._package_test
- name: Validate IREE Runtime Package
id: validate_runtime_package
run: |
echo "Testing default runtime:"
python -m iree.runtime._package_test
echo "Testing tracy runtime:"
# GH runners don't expose the TSC but we want to make sure the basic packaging
# works, so override the check with TRACY_NO_INVARIANT_CHECK=1 (per instructions
# if this is left off).
TRACY_NO_INVARIANT_CHECK=1 IREE_PY_RUNTIME=tracy \
python -m iree.runtime._package_test
# Binaries from the tarball
- name: Run iree-benchmark-executable
id: run_iree_benchmark_executable
run: ./bin/iree-benchmark-executable --help
- name: Run iree-benchmark-module
id: run_iree_benchmark_module
run: ./bin/iree-benchmark-module --help
- name: Run iree-dump-module
id: run_iree_dump_module
run: ./bin/iree-dump-module --help
- name: Run iree-cpuinfo
id: run_iree_cpuinfo
run: ./bin/iree-cpuinfo
- name: Run iree-flatcc-cli
id: run_iree_flatcc_cli
run: ./bin/iree-flatcc-cli --help
- name: Run iree-opt
id: run_iree_opt
run: ./bin/iree-opt --help
- name: Run iree-run-mlir
id: run_iree_run_mlir
run: ./bin/iree-run-mlir --help
- name: Run iree-run-module
id: run_iree_run_module
run: ./bin/iree-run-module --help
- name: Run iree-tblgen
id: run_iree_tblgen
run: ./bin/iree-tblgen --help
- name: Run iree-compile
id: run_iree-compile
run: ./bin/iree-compile --help
# Console scripts from the wheels.
- name: Py iree-run-module
id: py_iree-run-module
run: iree-run-module --help
- name: Py iree-benchmark-executable
id: py_iree_benchmark_executable
run: iree-benchmark-executable --help
- name: Py iree-benchmark-module
id: py_iree_benchmark_module
run: iree-benchmark-module --help
- name: Py iree-dump-module
id: py_iree_dump_module
run: iree-dump-module --help
- name: Py iree-cpuinfo
id: py_iree_cpuinfo
run: iree-cpuinfo
publish_release:
name: "Publish release"
needs: validate_packages
runs-on: ubuntu-24.04
steps:
- name: Publish Release
id: publish_release
uses: eregon/publish-release@46913fa2b3f7edc7345ae3c17f6d1b093a54916d # v1.0.5
env:
GITHUB_TOKEN: ${{ secrets.WRITE_ACCESS_TOKEN }}
with:
release_id: ${{ github.event.inputs.release_id }}
- name: Checking out repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
token: ${{ secrets.WRITE_ACCESS_TOKEN }}
# Get all history. Otherwise the latest-snapshot branch can't be
# fast-forwarded.
fetch-depth: 0
- name: Set up python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: "3.9"
- name: Check for patch release
run: |
python -m pip install packaging
is_patch_release="$(python -c "from packaging.version import Version;print('true' if Version('${{ github.event.inputs.package_version }}').micro !=0 else 'false')")"
echo "is_patch_release=${is_patch_release}" >> $GITHUB_ENV
- name: Updating latest-snapshot branch
# Do not update the branch if the release is a patch release
if: ${{ env.is_patch_release == 'false'}}
uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # v0.8.0
with:
github_token: ${{ secrets.WRITE_ACCESS_TOKEN }}
branch: latest-snapshot
force: true