blob: 69d2f43dda8e3d919d07855056aaeea83511409a [file] [log] [blame]
# Copyright 2023 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
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
# Experimental branches can also get packages and tests automatically.
- exppkg-*
# Short term feature branches:
- sdxl
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:
uses: ./.github/workflows/setup.yml
build_packages:
name: Build Packages
needs: setup
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'build_packages')
uses: ./.github/workflows/pkgci_build_packages.yml
# Package sanity checks.
unit_test:
name: Unit Test
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'unit_test')
uses: ./.github/workflows/pkgci_unit_test.yml
# Tests for large programs.
regression_test:
name: Regression Test
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'regression_test')
uses: ./.github/workflows/pkgci_regression_test.yml
########################### Hardware/accelerators ###########################
# Jobs that run unit tests on special hardware platforms or accelerators
#############################################################################
test_amd_mi250:
name: Test AMD MI250
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_amd_mi250')
uses: ./.github/workflows/pkgci_test_amd_mi250.yml
test_amd_mi300:
name: Test AMD MI300
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_amd_mi300')
uses: ./.github/workflows/pkgci_test_amd_mi300.yml
test_amd_w7900:
name: Test AMD W7900
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_amd_w7900')
uses: ./.github/workflows/pkgci_test_amd_w7900.yml
# TODO(#18238): migrate to new runner cluster
# test_nvidia_t4:
# name: Test NVIDIA T4
# needs: [setup, build_packages]
# if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_nvidia_t4')
# uses: ./.github/workflows/pkgci_test_nvidia_t4.yml
test_android:
name: Test Android
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_android')
uses: ./.github/workflows/pkgci_test_android.yml
with:
write-caches: ${{ needs.setup.outputs.write-caches }}
test_riscv64:
name: Test RISC-V 64
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_riscv64')
uses: ./.github/workflows/pkgci_test_riscv64.yml
with:
write-caches: ${{ needs.setup.outputs.write-caches }}
################################# Frameworks ################################
# Jobs that test machine learning frameworks or their Python APIs
#############################################################################
test_onnx:
name: Test ONNX
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_onnx')
uses: ./.github/workflows/pkgci_test_onnx.yml
test_tensorflow:
name: Test TensorFlow
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_tensorflow')
uses: ./.github/workflows/pkgci_test_tensorflow.yml