3
3
push :
4
4
branches :
5
5
- main
6
- - capi-v1 # TODO: Used for testing my fork, remove prior to merge
7
6
schedule :
8
7
- cron : " 0 */4 * * *" # TODO: Run every 4 hours to soak test, should be less frequent before merge (weekly/daily/???)
9
8
env :
10
- REGISTRY : ghcr.io
11
- IMAGE_NAME : ${{ github.repository }}
9
+ IMAGE_NAME : cluster-api-provider-packet
10
+ GHCR_REGISTRY : ghcr.io/${{ github.repository_owner }}
11
+ DOCKER_REGISTRY : ${{ secrets.DOCKER_ORG }}
12
+ QUAY_REGISTRY : quay.io/${{ secrets.QUAY_ORG }}
13
+ REGISTRY : quay.io/${{ secrets.QUAY_ORG }}
14
+ metadata_flavor : latest=false
15
+ metadata_tags : type=sha
16
+
12
17
jobs :
13
18
validate :
14
19
name : " Validate ${{ matrix.target }}"
@@ -38,10 +43,12 @@ jobs:
38
43
${{ runner.os }}-tmp-
39
44
- name : ${{ matrix.target }}
40
45
run : make ${{ matrix.target }}
46
+
41
47
manager-image :
42
48
name : Build and push manager image
43
49
runs-on : ubuntu-latest
44
- needs : [validate]
50
+ needs :
51
+ - validate
45
52
steps :
46
53
- name : checkout
47
54
uses : actions/checkout@v3
@@ -50,19 +57,42 @@ jobs:
50
57
uses : docker/setup-qemu-action@v1
51
58
- name : Set up Docker Buildx
52
59
uses : docker/setup-buildx-action@v1
53
- - name : Docker manager metadata
60
+
61
+ - name : Generate metadata
54
62
id : meta
55
- uses : docker/ metadata-action@v3
63
+ uses : ./.github/actions/ metadata
56
64
with :
57
- images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
58
- tags : |
59
- type=sha
60
- - name : Log in to the Container registry
65
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
66
+ quay_username : ${{ secrets.QUAY_USERNAME }}
67
+ metadata_flavor : ${{ env.metadata_flavor }}
68
+ metadata_tags : ${{ env.metadata_tags }}
69
+
70
+ - name : Log in to ghcr.io
61
71
uses : docker/login-action@v1
62
72
with :
63
- registry : ${{ env.REGISTRY }}
73
+ registry : ghcr.io
64
74
username : ${{ github.actor }}
65
75
password : ${{ secrets.GITHUB_TOKEN }}
76
+
77
+ - name : Log into DockerHub
78
+ uses : docker/login-action@v1
79
+ env :
80
+ DOCKER_USERNAME : ${{ secrets.DOCKER_USERNAME }}
81
+ if : ${{ env.DOCKER_USERNAME != '' }}
82
+ with :
83
+ username : ${{ secrets.DOCKER_USERNAME }}
84
+ password : ${{ secrets.DOCKER_PASSWORD }}
85
+
86
+ - name : Log into quay.io
87
+ uses : docker/login-action@v1
88
+ env :
89
+ QUAY_USERNAME : ${{ secrets.QUAY_USERNAME }}
90
+ if : ${{ env.QUAY_USERNAME != '' }}
91
+ with :
92
+ registry : quay.io
93
+ username : ${{ secrets.QUAY_USERNAME }}
94
+ password : ${{ secrets.QUAY_PASSWORD }}
95
+
66
96
- name : Build and push manager image
67
97
uses : docker/build-push-action@v2
68
98
with :
@@ -73,10 +103,12 @@ jobs:
73
103
platforms : linux/amd64,linux/arm64
74
104
cache-from : type=gha, scope=${{ github.workflow }}
75
105
cache-to : type=gha, mode=max, scope=${{ github.workflow }}
106
+
76
107
test-release :
77
108
name : Test Release
78
109
runs-on : ubuntu-latest
79
- needs : [validate]
110
+ needs :
111
+ - validate
80
112
steps :
81
113
- name : checkout
82
114
uses : actions/checkout@v3
@@ -88,22 +120,26 @@ jobs:
88
120
restore-keys : |
89
121
${{ runner.os }}-tools-bin-release-
90
122
${{ runner.os }}-tools-bin-
91
- - name : Docker manager metadata
123
+
124
+ - name : Generate metadata
92
125
id : meta
93
- uses : docker/ metadata-action@v3
126
+ uses : ./.github/actions/ metadata
94
127
with :
95
- images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
96
- tags : |
97
- type=sha
128
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
129
+ quay_username : ${{ secrets.QUAY_USERNAME }}
130
+ metadata_flavor : ${{ env.metadata_flavor }}
131
+ metadata_tags : ${{ env.metadata_tags }}
132
+
98
133
- name : Test Release
99
134
env :
100
- TAG : ${{ fromJSON( steps.meta.outputs.json).labels['org.opencontainers.image. version'] }}
135
+ TAG : ${{ steps.meta.outputs.version }}
101
136
run : make release
102
137
- name : Upload artifact
103
138
uses : actions/upload-artifact@v2
104
139
with :
105
140
name : test-release
106
141
path : out/release
142
+
107
143
e2e-quickstart :
108
144
name : " E2E quickstart"
109
145
concurrency : ci-${{ github.ref }}-e2e-quickstart
@@ -127,13 +163,23 @@ jobs:
127
163
with :
128
164
name : test-release
129
165
path : out/release
130
- - name : Set TAG env variable
131
- run : |
132
- echo "TAG=sha-${GITHUB_SHA::7}" >> $GITHUB_ENV
166
+
167
+ - name : Generate metadata
168
+ id : meta
169
+ uses : ./.github/actions/metadata
170
+ with :
171
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
172
+ quay_username : ${{ secrets.QUAY_USERNAME }}
173
+ metadata_flavor : ${{ env.metadata_flavor }}
174
+ metadata_tags : ${{ env.metadata_tags }}
175
+
133
176
- name : Prepull the pre-built image
134
177
run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
178
+ env :
179
+ TAG : ${{ steps.meta.outputs.version }}
135
180
- name : " e2e-quickstart"
136
181
env :
182
+ TAG : ${{ steps.meta.outputs.version }}
137
183
PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
138
184
PROJECT_ID : ${{ secrets.PROJECT_ID }}
139
185
E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -173,13 +219,23 @@ jobs:
173
219
with :
174
220
name : test-release
175
221
path : out/release
176
- - name : Set TAG env variable
177
- run : |
178
- echo "TAG=sha-${GITHUB_SHA::7}" >> $GITHUB_ENV
222
+
223
+ - name : Generate metadata
224
+ id : meta
225
+ uses : ./.github/actions/metadata
226
+ with :
227
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
228
+ quay_username : ${{ secrets.QUAY_USERNAME }}
229
+ metadata_flavor : ${{ env.metadata_flavor }}
230
+ metadata_tags : ${{ env.metadata_tags }}
231
+
179
232
- name : Prepull the pre-built image
180
233
run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
234
+ env :
235
+ TAG : ${{ steps.meta.outputs.version }}
181
236
- name : " e2e"
182
237
env :
238
+ TAG : ${{ steps.meta.outputs.version }}
183
239
PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
184
240
PROJECT_ID : ${{ secrets.PROJECT_ID }}
185
241
E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -219,13 +275,23 @@ jobs:
219
275
with :
220
276
name : test-release
221
277
path : out/release
222
- - name : Set TAG env variable
223
- run : |
224
- echo "TAG=sha-${GITHUB_SHA::7}" >> $GITHUB_ENV
278
+
279
+ - name : Generate metadata
280
+ id : meta
281
+ uses : ./.github/actions/metadata
282
+ with :
283
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
284
+ quay_username : ${{ secrets.QUAY_USERNAME }}
285
+ metadata_flavor : ${{ env.metadata_flavor }}
286
+ metadata_tags : ${{ env.metadata_tags }}
287
+
225
288
- name : Prepull the pre-built image
226
289
run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
290
+ env :
291
+ TAG : ${{ steps.meta.outputs.version }}
227
292
- name : " e2e-conformance"
228
293
env :
294
+ TAG : ${{ steps.meta.outputs.version }}
229
295
PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
230
296
PROJECT_ID : ${{ secrets.PROJECT_ID }}
231
297
E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -265,13 +331,23 @@ jobs:
265
331
with :
266
332
name : test-release
267
333
path : out/release
268
- - name : Set TAG env variable
269
- run : |
270
- echo "TAG=sha-${GITHUB_SHA::7}" >> $GITHUB_ENV
334
+
335
+ - name : Generate metadata
336
+ id : meta
337
+ uses : ./.github/actions/metadata
338
+ with :
339
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
340
+ quay_username : ${{ secrets.QUAY_USERNAME }}
341
+ metadata_flavor : ${{ env.metadata_flavor }}
342
+ metadata_tags : ${{ env.metadata_tags }}
343
+
271
344
- name : Prepull the pre-built image
272
345
run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
346
+ env :
347
+ TAG : ${{ steps.meta.outputs.version }}
273
348
- name : " e2e-management-upgrade"
274
349
env :
350
+ TAG : ${{ steps.meta.outputs.version }}
275
351
PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
276
352
PROJECT_ID : ${{ secrets.PROJECT_ID }}
277
353
E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -311,13 +387,23 @@ jobs:
311
387
with :
312
388
name : test-release
313
389
path : out/release
314
- - name : Set TAG env variable
315
- run : |
316
- echo "TAG=sha-${GITHUB_SHA::7}" >> $GITHUB_ENV
390
+
391
+ - name : Generate metadata
392
+ id : meta
393
+ uses : ./.github/actions/metadata
394
+ with :
395
+ docker_username : ${{ secrets.DOCKER_USERNAME }}
396
+ quay_username : ${{ secrets.QUAY_USERNAME }}
397
+ metadata_flavor : ${{ env.metadata_flavor }}
398
+ metadata_tags : ${{ env.metadata_tags }}
399
+
317
400
- name : Prepull the pre-built image
318
401
run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
402
+ env :
403
+ TAG : ${{ steps.meta.outputs.version }}
319
404
- name : " e2e-workload-upgrade"
320
405
env :
406
+ TAG : ${{ steps.meta.outputs.version }}
321
407
PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
322
408
PROJECT_ID : ${{ secrets.PROJECT_ID }}
323
409
E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
0 commit comments