-
Notifications
You must be signed in to change notification settings - Fork 624
117 lines (99 loc) · 3.97 KB
/
pkgci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# 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
test_pjrt:
name: Test PJRT plugin
needs: [setup, build_packages]
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_pjrt')
uses: ./.github/workflows/pkgci_test_pjrt.yml