-
Notifications
You must be signed in to change notification settings - Fork 315
166 lines (158 loc) · 6.63 KB
/
Copy pathmulti_arch_release.yml
File metadata and controls
166 lines (158 loc) · 6.63 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
157
158
159
160
161
162
163
164
165
166
# Copyright Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT
# This workflow is the entry point for multi-arch releases.
#
# For manual dev releases, trigger via workflow_dispatch on TheRock.
# For scheduled nightly releases, rockrel will call this via workflow_call
# (TODO: pass required inputs through to setup job explicitly as needed).
#
# If we want per-platform status badges, independent retryability, or
# isolation from cross-platform runner queue issues, we can switch to
# dispatching each platform job via workflow_dispatch. That will also
# let us have this pre-trigger job freeze commits/versions so re-runs use
# consistent values, see https://github.com/ROCm/TheRock/issues/1236.
name: Multi-Arch Release
on:
workflow_call:
inputs:
release_type:
description: 'Release type: "dev", "nightly", or "prerelease".'
type: string
required: true
prerelease_version:
description: Prerelease version number such as '2'. This gets appended to the computed version after 'rc', like '7.10.0rc2'
type: string
default: ""
# For workflow_call, default to empty and trust the calling workflow to be explicit or pass "all".
linux_amdgpu_families:
description: 'Comma-separated list of Linux GPU families. "all" = all, "none" or empty = skip.'
type: string
default: ""
windows_amdgpu_families:
description: 'Comma-separated list of Windows GPU families. "all" = all, "none" or empty = skip.'
type: string
default: ""
repository:
description: "Repository to checkout. Defaults to github.repository."
type: string
default: ""
ref:
description: "Branch, tag, or SHA to checkout. Defaults to the triggering ref."
type: string
default: ""
run_full_pytorch_tests:
description: Run full PyTorch tests after scheduled nightly Linux PyTorch wheel builds complete.
type: boolean
default: false
build_pytorch:
description: "Build PyTorch wheels"
type: boolean
default: true
build_jax:
description: "Build JAX wheels"
type: boolean
default: true
python_version:
description: "Single Python version for wheel builds (empty for full matrix)"
type: string
default: ""
workflow_dispatch:
inputs:
release_type:
description: 'Release type; developer-triggered jobs should use "dev".'
type: choice
options:
- dev
default: dev
prerelease_version:
description: Prerelease version number such as '2'. This gets appended to the computed version after 'rc', like '7.10.0rc2'
type: string
default: ""
# For workflow_dispatch, default to a single GPU family to limit CI load for most workflow runs.
# Note: empty string will be converted to the default by github, so we need an explicit "none".
linux_amdgpu_families:
description: 'Comma-separated list of Linux GPU families. "all" = all, "none" = skip platform.'
type: string
default: "gfx94x"
windows_amdgpu_families:
description: 'Comma-separated list of Windows GPU families. "all" = all, "none" = skip platform.'
type: string
default: "gfx110x"
run_full_pytorch_tests:
description: Run full PyTorch tests after scheduled nightly Linux PyTorch wheel builds complete.
type: boolean
default: false
build_pytorch:
description: "Build PyTorch wheels"
type: boolean
default: false
build_jax:
description: "Build JAX wheels"
type: boolean
default: false
python_version:
description: "Single Python version for wheel builds (empty for full matrix)"
type: string
default: ""
permissions:
contents: read
run-name: >-
Multi-Arch Release (${{ inputs.release_type }})
| Linux: ${{ inputs.linux_amdgpu_families || 'none' }}
| Windows: ${{ inputs.windows_amdgpu_families || 'none' }}
jobs:
setup:
uses: ./.github/workflows/setup_multi_arch.yml
with:
build_variant: "release"
release_type: ${{ inputs.release_type }}
prerelease_version: ${{ inputs.prerelease_version }}
build_pytorch: ${{ inputs.build_pytorch }}
build_jax: ${{ inputs.build_jax }}
python_version: ${{ inputs.python_version }}
linux_amdgpu_families: ${{ inputs.linux_amdgpu_families }}
windows_amdgpu_families: ${{ inputs.windows_amdgpu_families }}
repository: ${{ inputs.repository || github.repository }}
ref: ${{ inputs.ref }}
linux_release:
name: Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }}
needs: setup
if: ${{ needs.setup.outputs.linux_build_config != '' }}
uses: ./.github/workflows/multi_arch_release_linux.yml
secrets: inherit
with:
build_config: ${{ needs.setup.outputs.linux_build_config }}
rocm_package_version: ${{ needs.setup.outputs.rocm_package_version }}
rocm_deb_package_version: ${{ needs.setup.outputs.rocm_deb_package_version }}
rocm_rpm_package_version: ${{ needs.setup.outputs.rocm_rpm_package_version }}
test_type: ${{ needs.setup.outputs.test_type }}
release_type: ${{ inputs.release_type }}
repository: ${{ inputs.repository || github.repository }}
ref: ${{ needs.setup.outputs.ref }}
run_full_pytorch_tests: ${{ inputs.run_full_pytorch_tests }}
build_pytorch: ${{ inputs.build_pytorch }}
build_jax: ${{ inputs.build_jax }}
python_version: ${{ inputs.python_version }}
permissions:
contents: read
actions: write # Added permission to trigger workflows
id-token: write # Added permission for AWS S3 upload
windows_release:
name: Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }}
needs: setup
if: ${{ needs.setup.outputs.windows_build_config != '' }}
uses: ./.github/workflows/multi_arch_release_windows.yml
secrets: inherit
with:
build_config: ${{ needs.setup.outputs.windows_build_config }}
rocm_package_version: ${{ needs.setup.outputs.rocm_package_version }}
test_type: ${{ needs.setup.outputs.test_type }}
release_type: ${{ inputs.release_type }}
repository: ${{ inputs.repository || github.repository }}
ref: ${{ needs.setup.outputs.ref }}
build_pytorch: ${{ inputs.build_pytorch }}
python_version: ${{ inputs.python_version }}
permissions:
contents: read
actions: write # Added permission to trigger workflows
id-token: write # Added permission for AWS S3 upload