-
Notifications
You must be signed in to change notification settings - Fork 631
149 lines (128 loc) · 4.88 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# 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
# TODO(https://github.com/iree-org/iree-test-suites/issues/56): re-enable when git LFS quota is available
test_sharktank:
name: Test Sharktank
needs: [setup, build_packages]
if: false && contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_sharktank')
uses: ./.github/workflows/pkgci_test_sharktank.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
##############################################################################
# Aggregate job status and alerting on failures.
pkgci_summary:
if: always()
needs:
- setup
- build_packages
- unit_test
- regression_test
- test_amd_mi250
- test_amd_mi300
- test_amd_w7900
# - test_nvidia_t4
- test_android
- test_riscv64
- test_onnx
- test_sharktank
- test_tensorflow
- test_pjrt
uses: ./.github/workflows/workflow_summary.yml
secrets: inherit
with:
jobs-json: ${{ toJson(needs) }}