blob: 9c585746c9c9fd2aa84fa0c4a4cc1a3990cd8f09 [file] [log] [blame]
# Copyright 2024 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
name: PkgCI Unit Test
on:
workflow_call:
inputs:
artifact_run_id:
type: string
default: ""
workflow_dispatch:
inputs:
artifact_run_id:
type: string
default: ""
jobs:
linux_x86_64:
name: Linux (x86_64)
runs-on: ubuntu-24.04
env:
PACKAGE_DOWNLOAD_DIR: ${{ github.workspace }}/.packages
VENV_DIR: ${{ github.workspace }}/.venv
GH_TOKEN: ${{ github.token }}
steps:
- name: Checking out repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: false
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
# Must match the subset of versions built in pkgci_build_packages.
python-version: "3.11"
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
if: ${{ inputs.artifact_run_id == '' }}
with:
name: linux_x86_64_release_packages
path: ${{ env.PACKAGE_DOWNLOAD_DIR }}
- name: Setup base venv
run: |
./build_tools/pkgci/setup_venv.py ${VENV_DIR} \
--artifact-path=${PACKAGE_DOWNLOAD_DIR} \
--fetch-gh-workflow=${{ inputs.artifact_run_id }}
source ${VENV_DIR}/bin/activate
pip install -r runtime/bindings/python/iree/runtime/build_requirements.txt
- name: Validate runtime wheel
run: |
source ${VENV_DIR}/bin/activate
echo "Testing default runtime package:"
python -m iree.runtime._package_test
echo "Testing tracy runtime package:"
# 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
- name: Validate compiler wheel
run: |
source ${VENV_DIR}/bin/activate
echo "Testing compiler package:"
python -m iree.compiler._package_test
# Test tools and importers that require additional deps.
- name: Test ONNX importer
run: |
source ${VENV_DIR}/bin/activate
python -m pip install onnx>=1.16.0
python compiler/bindings/python/test/tools/import_onnx_test.py
python compiler/bindings/python/test/extras/onnx_importer_test.py
- name: Test FX (PyTorch) importer
run: |
source ${VENV_DIR}/bin/activate
python -m pip install torch>=2.3.0
python compiler/bindings/python/test/extras/fx_importer_test.py
- name: Test TensorFlow importer
run: |
source ${VENV_DIR}/bin/activate
bash ./build_tools/scripts/setup_tf_python.sh
# TODO: reenable. Temporarily disabled due to a breaking change in
# tosa.mul. This can be reenabled after the TensorFlow tools are
# rebuilt with a newer llvm-project with the new tosa.mul.
# python compiler/bindings/python/test/tools/compiler_tflite_test.py
python compiler/bindings/python/test/tools/compiler_tf_test.py