| # 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 |