-
Notifications
You must be signed in to change notification settings - Fork 88
156 lines (140 loc) · 5.82 KB
/
Copy pathci.yml
File metadata and controls
156 lines (140 loc) · 5.82 KB
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
150
151
152
153
154
155
156
name: CI
permissions:
contents: read
pull-requests: read
on:
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
detect-changes:
uses: ./.github/workflows/_detect-changes.yml
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
base_repository: ${{ github.event.pull_request.base.repo.full_name }}
base_ref: ${{ github.event.pull_request.base.ref }}
base_sha: ${{ github.event.pull_request.base.sha }}
head_sha: ${{ github.event.pull_request.head.sha }}
runs_on: '["ubuntu-latest"]'
pre-commit:
uses: ./.github/workflows/_pre-commit.yml
with:
base_sha: ${{ github.event.pull_request.base.sha }}
head_sha: ${{ github.event.pull_request.head.sha }}
runs_on: '["ubuntu-latest"]'
setup_variant: github
packaging-matrix:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.non_code_only != 'true' && needs.detect-changes.outputs.examples_only != 'true' && needs.detect-changes.outputs.tests_only != 'true'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.10"]
uses: ./.github/workflows/_packaging.yml
with:
runs_on: ${{ toJSON(matrix.os) }}
setup_variant: github
python_version: ${{ matrix.python-version }}
ut:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.non_code_only != 'true' && needs.detect-changes.outputs.ut_affected == 'true'
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.10"]
uses: ./.github/workflows/_ut-no-hardware.yml
with:
runs_on: ${{ toJSON(matrix.os) }}
setup_variant: github
python_version: ${{ matrix.python-version }}
st-sim-a2a3:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.a2a3_changed == 'true' && needs.detect-changes.outputs.st_affected == 'true'
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.10"]
uses: ./.github/workflows/_st-sim-a2a3.yml
with:
runs_on: ${{ toJSON(matrix.os) }}
setup_variant: github
include_dfx_smokes: true
python_version: ${{ matrix.python-version }}
st-sim-a5:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.a5_changed == 'true' && needs.detect-changes.outputs.st_affected == 'true'
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.10"]
uses: ./.github/workflows/_st-sim-a5.yml
with:
runs_on: ${{ toJSON(matrix.os) }}
setup_variant: github
include_dfx_smokes: true
python_version: ${{ matrix.python-version }}
profiling-flags-smoke:
needs: [detect-changes, pre-commit]
if: (needs.detect-changes.outputs.a2a3_changed == 'true' || needs.detect-changes.outputs.a5_changed == 'true') && needs.detect-changes.outputs.examples_only != 'true' && needs.detect-changes.outputs.tests_only != 'true'
uses: ./.github/workflows/_profiling-flags-smoke.yml
with:
runs_on: '["ubuntu-latest"]'
setup_variant: github
ut-a2a3:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.non_code_only != 'true' && needs.detect-changes.outputs.ut_affected == 'true'
uses: ./.github/workflows/_ut-npu-a2a3.yml
with:
runs_on: '["self-hosted","a2a3"]'
include_cann_examples: true
st-onboard-a2a3:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.a2a3_changed == 'true' && needs.detect-changes.outputs.st_affected == 'true'
uses: ./.github/workflows/_st-npu-a2a3.yml
with:
runs_on: '["self-hosted","a2a3"]'
include_dfx_smokes: true
# The only job that spans two machines. It is arch-specific and the most
# expensive thing in this file, so it gates exactly as st-onboard-a2a3 does —
# never on a weaker signal than a cheaper job, per
# .claude/rules/ci-change-detection.md.
st-network1-onboard-a2a3:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.a2a3_changed == 'true' && needs.detect-changes.outputs.st_affected == 'true'
uses: ./.github/workflows/_st-network1.yml
with:
platform: a2a3
# a2a3pod is a label on the runner machines, not a value this repo
# controls, so it keeps the older word until those machines are
# relabelled. A job matches every label in this list, so it cannot accept
# either spelling.
runs_on: '["self-hosted","Linux","ARM64","a2a3pod"]'
# The two DeepSeek smoke cases stay manual, so the main sweep (--manual
# exclude) never picks them up; this job selects them with --manual only and
# runs on its own devices in parallel with st-onboard-a2a3, keeping their
# ~9 min of device time off the main sweep's critical path. Gates exactly as
# st-onboard-a2a3 does, per .claude/rules/ci-change-detection.md.
st-deepseek-onboard-a2a3:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.a2a3_changed == 'true' && needs.detect-changes.outputs.st_affected == 'true'
uses: ./.github/workflows/_st-deepseek-a2a3.yml
with:
runs_on: '["self-hosted","a2a3"]'
ut-a5:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.non_code_only != 'true' && needs.detect-changes.outputs.ut_affected == 'true'
uses: ./.github/workflows/_ut-npu-a5.yml
with:
runs_on: '["self-hosted","a5"]'
include_cann_examples: true
st-onboard-a5:
needs: [detect-changes, pre-commit]
if: needs.detect-changes.outputs.a5_changed == 'true' && needs.detect-changes.outputs.st_affected == 'true'
uses: ./.github/workflows/_st-npu-a5.yml
with:
runs_on: '["self-hosted","a5"]'
include_dfx_smokes: true