-
Notifications
You must be signed in to change notification settings - Fork 241
140 lines (132 loc) · 5.85 KB
/
multi_arch_release.yml
File metadata and controls
140 lines (132 loc) · 5.85 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
# 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: ""
prebuilt_prefix:
description: >-
Optional fixed prefix component (the part before "-linux"/
"-windows") to copy artifacts from instead of building from
source. Empty (the default) selects normal source-build mode.
type: string
default: ""
workflow_dispatch:
inputs:
release_type:
description: 'Release type. All 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"
prebuilt_prefix:
description: >-
Optional fixed prefix component to copy artifacts from instead of
building from source. Empty selects normal source-build mode.
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' }}${{ inputs.prebuilt_prefix && format(' | prebuilt: {0}', inputs.prebuilt_prefix) || '' }}
jobs:
setup:
uses: ./.github/workflows/setup_multi_arch.yml
with:
build_variant: "release"
release_type: ${{ inputs.release_type }}
prerelease_version: ${{ inputs.prerelease_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 }}
prebuilt_prefix: ${{ inputs.prebuilt_prefix }}
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 }}
prebuilt_prefix: ${{ inputs.prebuilt_prefix }}
permissions:
contents: read
actions: write # Added permission to trigger workflows
id-token: write # Added permission for AWS S3 upload