@@ -6,15 +6,16 @@ permissions:
6
6
on :
7
7
workflow_call :
8
8
secrets :
9
- dockerhub-password :
10
- required : false
11
9
gcs-cache-key :
12
10
required : true
13
11
gpg-key :
14
12
required : true
15
13
gpg-key-password :
16
14
required : true
17
15
inputs :
16
+ arch :
17
+ type : string
18
+ required : true
18
19
gcs-cache-bucket :
19
20
type : string
20
21
required : true
@@ -31,7 +32,7 @@ concurrency:
31
32
${{ github.actor != 'trigger-release-envoy[bot]'
32
33
&& github.event.inputs.head_ref
33
34
|| github.run_id
34
- }}-${{ github.event.workflow.id }}-publish
35
+ }}-${{ inputs.arch }}-${{ github.event.workflow.id }}-publish
35
36
cancel-in-progress : true
36
37
37
38
@@ -42,152 +43,86 @@ jobs:
42
43
permissions :
43
44
contents : read
44
45
packages : read
45
- name : ${{ matrix.name || matrix.target }}
46
+ name : Binary
46
47
uses : ./.github/workflows/_run.yml
47
48
with :
48
- arch : ${{ matrix.arch }}
49
- bazel-extra : ${{ matrix.bazel-extra }}
50
- target : ${{ matrix.target }}
51
- target-suffix : ${{ matrix.arch }}
52
- cache-build-image : ${{ fromJSON(inputs.request).request.build-image.default }}
53
- cache-build-image-key-suffix : ${{ matrix.arch == 'arm64' && format('-{0}', matrix.arch) || '' }}
54
- concurrency-suffix : -${{ matrix.arch }}
55
- gcs-cache-bucket : ${{ inputs.gcs-cache-bucket }}
56
- rbe : ${{ matrix.rbe }}
57
- request : ${{ inputs.request }}
58
- runs-on : ${{ matrix.runs-on }}
59
- timeout-minutes : 120
60
- trusted : ${{ inputs.trusted }}
61
- upload-name : release.${{ matrix.arch }}
62
- upload-path : envoy/${{ matrix.arch }}/bin/
63
- strategy :
64
- fail-fast : false
65
- matrix :
66
- include :
67
- - target : release.server_only
68
- name : Release (x64)
69
- arch : x64
70
- bazel-extra : >-
71
- --config=remote-envoy-engflow
72
- rbe : true
73
- - target : release.server_only
74
- name : Release (arm64)
75
- arch : arm64
76
- bazel-extra : >-
77
- --config=remote-envoy-engflow
78
- rbe : true
79
- runs-on : ${{ vars.ENVOY_ARM_VM || 'ubuntu-24.04-arm' }}
80
-
81
- distribution :
82
- permissions :
83
- contents : read
84
- packages : read
85
- secrets :
86
- gcs-cache-key : ${{ secrets.gcs-cache-key }}
87
- gpg-key : ${{ secrets.gpg-key }}
88
- gpg-key-password : ${{ secrets.gpg-key-password }}
89
- name : ${{ matrix.name || matrix.target }}
90
- needs :
91
- - binary
92
- uses : ./.github/workflows/_run.yml
93
- with :
94
- arch : ${{ matrix.arch }}
49
+ arch : ${{ inputs.arch }}
95
50
bazel-extra : >-
96
- --config=remote-cache-envoy-engflow
97
- downloads : |
98
- release.${{ matrix.arch }}: release/${{ matrix.arch }}/bin/
99
- target : ${{ matrix.target }}
100
- target-suffix : ${{ matrix.arch }}
51
+ --config=remote-envoy-engflow
52
+ target : release.server_only
53
+ target-suffix : ${{ inputs.arch }}
101
54
cache-build-image : ${{ fromJSON(inputs.request).request.build-image.default }}
102
- cache-build-image-key-suffix : ${{ matrix.cache-build-image-key-suffix }}
103
- concurrency-suffix : -${{ matrix .arch }}
55
+ cache-build-image-key-suffix : ${{ inputs.arch == 'arm64' && '-arm64' || '' }}
56
+ concurrency-suffix : -${{ inputs .arch }}
104
57
gcs-cache-bucket : ${{ inputs.gcs-cache-bucket }}
105
- import-gpg : true
106
- rbe : false
58
+ rbe : true
107
59
request : ${{ inputs.request }}
108
- runs-on : ${{ matrix.runs-on }}
60
+ runs-on : ${{ inputs.arch == 'arm64' && (vars.ENVOY_ARM_VM || 'ubuntu-24.04-arm') || null }}
61
+ timeout-minutes : 120
109
62
trusted : ${{ inputs.trusted }}
110
- upload-name : packages.${{ matrix.arch }}
111
- upload-path : envoy/${{ matrix.arch }}
112
- strategy :
113
- fail-fast : false
114
- matrix :
115
- include :
116
- - target : distribution
117
- name : Package debs (x64)
118
- arch : x64
119
- - target : distribution
120
- name : Package debs (arm64)
121
- arch : arm64
122
- cache-build-image-key-suffix : -arm64
123
- runs-on : ${{ vars.ENVOY_ARM_VM || 'ubuntu-24.04-arm' }}
63
+ upload-name : release.${{ inputs.arch }}
64
+ upload-path : envoy/${{ inputs.arch }}/bin/
124
65
125
66
docker :
126
67
permissions :
127
68
contents : read
128
69
packages : read
129
- secrets :
130
- dockerhub-password : ${{ secrets.dockerhub-password }}
131
- name : ${{ matrix.name || matrix.target }}
70
+ name : Docker OCI
132
71
needs :
133
72
- binary
134
73
uses : ./.github/workflows/_run.yml
135
74
with :
136
- target : ${{ matrix.target }}
75
+ arch : ${{ inputs.arch }}
76
+ target : docker
77
+ target-suffix : ${{ inputs.arch }}
137
78
cache-build-image : ${{ fromJSON(inputs.request).request.build-image.default }}
79
+ cache-build-image-key-suffix : ${{ inputs.arch == 'arm64' && '-arm64' || '' }}
80
+ concurrency-suffix : -${{ inputs.arch }}
138
81
downloads : |
139
- release.arm64: envoy/arm64/bin/
140
- release.x64: envoy/x64/bin/
82
+ release.${{ inputs.arch }}: envoy/${{ inputs.arch }}/bin/
141
83
request : ${{ inputs.request }}
142
84
source : |
143
85
export NO_BUILD_SETUP=1
144
86
export ENVOY_DOCKER_IN_DOCKER=1
87
+ export ENVOY_DOCKER_SAVE_IMAGE=true
88
+ export ENVOY_OCI_DIR=build_images
89
+
90
+ # export DOCKER_BUILD_PLATFORM=${{ inputs.arch == 'x64' && 'linux/amd64' || 'linux/arm64' }}
91
+ # export DOCKER_LOAD_IMAGES=true
92
+ # export DOCKER_FORCE_OCI_OUTPUT=true
145
93
trusted : ${{ inputs.trusted }}
146
- upload-name : docker
147
- upload-path : build_images
148
- strategy :
149
- fail-fast : false
150
- matrix :
151
- include :
152
- - target : docker
153
- name : Docker (Linux multiarch)
94
+ upload-name : oci.${{ inputs.arch }}
95
+ upload-path : envoy/${{ inputs.arch }}/build_images
96
+ runs-on : ${{ inputs.arch == 'arm64' && (vars.ENVOY_ARM_VM || 'ubuntu-24.04-arm') || null }}
154
97
155
- sign :
98
+ distribution :
156
99
permissions :
157
100
contents : read
158
101
packages : read
159
102
secrets :
160
103
gcs-cache-key : ${{ secrets.gcs-cache-key }}
161
104
gpg-key : ${{ secrets.gpg-key }}
162
105
gpg-key-password : ${{ secrets.gpg-key-password }}
163
- name : ${{ matrix.name || matrix.target }}
106
+ name : Packages
164
107
needs :
165
- - distribution
108
+ - binary
166
109
uses : ./.github/workflows/_run.yml
167
110
with :
168
- target : release.signed
111
+ arch : ${{ inputs.arch }}
169
112
bazel-extra : >-
170
- --//distribution:x64-packages=//distribution:custom/x64/packages.x64.tar.gz
171
- --//distribution:arm64-packages=//distribution:custom/arm64/packages.arm64.tar.gz
172
- --//distribution:x64-release=//distribution:custom/x64/bin/release.tar.zst
173
- --//distribution:arm64-release=//distribution:custom/arm64/bin/release.tar.zst
174
- cache-build-image : ${{ fromJSON(inputs.request).request.build-image.default }}
175
- diskspace-hack : true
113
+ --config=remote-cache-envoy-engflow
176
114
downloads : |
177
- packages.arm64: envoy/arm64/
178
- packages.x64: envoy/x64/
179
- release.arm64: envoy/arm64/bin/
180
- release.x64: envoy/x64/bin/
115
+ release.${{ inputs.arch }}: release/${{ inputs.arch }}/bin/
116
+ target : distribution
117
+ target-suffix : ${{ inputs.arch }}
118
+ cache-build-image : ${{ fromJSON(inputs.request).request.build-image.default }}
119
+ cache-build-image-key-suffix : ${{ inputs.arch == 'arm64' && '-arm64' || '' }}
120
+ concurrency-suffix : -${{ inputs.arch }}
181
121
gcs-cache-bucket : ${{ inputs.gcs-cache-bucket }}
182
122
import-gpg : true
123
+ rbe : false
183
124
request : ${{ inputs.request }}
184
- source : |
185
- export NO_BUILD_SETUP=1
125
+ runs-on : ${{ inputs.arch == 'arm64' && (vars.ENVOY_ARM_VM || 'ubuntu-24.04-arm') || null }}
186
126
trusted : ${{ inputs.trusted }}
187
- upload-name : release.signed
188
- upload-path : envoy/release.signed.tar.zst
189
- steps-pre : |
190
- - run: |
191
- mkdir distribution/custom
192
- cp -a %{{ runner.temp }}/envoy/x64 %{{ runner.temp }}/envoy/arm64 distribution/custom
193
- shell: bash
127
+ upload-name : packages.${{ inputs.arch }}
128
+ upload-path : envoy/${{ inputs.arch }}
0 commit comments