33 push :
44 branches :
55 - main
6- - capi-v1 # TODO: Used for testing my fork, remove prior to merge
76 schedule :
87 - cron : " 0 */4 * * *" # TODO: Run every 4 hours to soak test, should be less frequent before merge (weekly/daily/???)
98env :
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+
1217jobs :
1318 validate :
1419 name : " Validate ${{ matrix.target }}"
@@ -38,10 +43,12 @@ jobs:
3843 ${{ runner.os }}-tmp-
3944 - name : ${{ matrix.target }}
4045 run : make ${{ matrix.target }}
46+
4147 manager-image :
4248 name : Build and push manager image
4349 runs-on : ubuntu-latest
44- needs : [validate]
50+ needs :
51+ - validate
4552 steps :
4653 - name : checkout
4754 uses : actions/checkout@v3
@@ -50,19 +57,42 @@ jobs:
5057 uses : docker/setup-qemu-action@v1
5158 - name : Set up Docker Buildx
5259 uses : docker/setup-buildx-action@v1
53- - name : Docker manager metadata
60+
61+ - name : Generate metadata
5462 id : meta
55- uses : docker/ metadata-action@v3
63+ uses : ./.github/actions/ metadata
5664 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
6171 uses : docker/login-action@v1
6272 with :
63- registry : ${{ env.REGISTRY }}
73+ registry : ghcr.io
6474 username : ${{ github.actor }}
6575 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+
6696 - name : Build and push manager image
6797 uses : docker/build-push-action@v2
6898 with :
@@ -73,10 +103,12 @@ jobs:
73103 platforms : linux/amd64,linux/arm64
74104 cache-from : type=gha, scope=${{ github.workflow }}
75105 cache-to : type=gha, mode=max, scope=${{ github.workflow }}
106+
76107 test-release :
77108 name : Test Release
78109 runs-on : ubuntu-latest
79- needs : [validate]
110+ needs :
111+ - validate
80112 steps :
81113 - name : checkout
82114 uses : actions/checkout@v3
@@ -88,22 +120,26 @@ jobs:
88120 restore-keys : |
89121 ${{ runner.os }}-tools-bin-release-
90122 ${{ runner.os }}-tools-bin-
91- - name : Docker manager metadata
123+
124+ - name : Generate metadata
92125 id : meta
93- uses : docker/ metadata-action@v3
126+ uses : ./.github/actions/ metadata
94127 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+
98133 - name : Test Release
99134 env :
100- TAG : ${{ fromJSON( steps.meta.outputs.json).labels['org.opencontainers.image. version'] }}
135+ TAG : ${{ steps.meta.outputs.version }}
101136 run : make release
102137 - name : Upload artifact
103138 uses : actions/upload-artifact@v2
104139 with :
105140 name : test-release
106141 path : out/release
142+
107143 e2e-quickstart :
108144 name : " E2E quickstart"
109145 concurrency : ci-${{ github.ref }}-e2e-quickstart
@@ -127,13 +163,23 @@ jobs:
127163 with :
128164 name : test-release
129165 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+
133176 - name : Prepull the pre-built image
134177 run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
178+ env :
179+ TAG : ${{ steps.meta.outputs.version }}
135180 - name : " e2e-quickstart"
136181 env :
182+ TAG : ${{ steps.meta.outputs.version }}
137183 PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
138184 PROJECT_ID : ${{ secrets.PROJECT_ID }}
139185 E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -173,13 +219,23 @@ jobs:
173219 with :
174220 name : test-release
175221 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+
179232 - name : Prepull the pre-built image
180233 run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
234+ env :
235+ TAG : ${{ steps.meta.outputs.version }}
181236 - name : " e2e"
182237 env :
238+ TAG : ${{ steps.meta.outputs.version }}
183239 PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
184240 PROJECT_ID : ${{ secrets.PROJECT_ID }}
185241 E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -219,13 +275,23 @@ jobs:
219275 with :
220276 name : test-release
221277 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+
225288 - name : Prepull the pre-built image
226289 run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
290+ env :
291+ TAG : ${{ steps.meta.outputs.version }}
227292 - name : " e2e-conformance"
228293 env :
294+ TAG : ${{ steps.meta.outputs.version }}
229295 PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
230296 PROJECT_ID : ${{ secrets.PROJECT_ID }}
231297 E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -265,13 +331,23 @@ jobs:
265331 with :
266332 name : test-release
267333 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+
271344 - name : Prepull the pre-built image
272345 run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
346+ env :
347+ TAG : ${{ steps.meta.outputs.version }}
273348 - name : " e2e-management-upgrade"
274349 env :
350+ TAG : ${{ steps.meta.outputs.version }}
275351 PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
276352 PROJECT_ID : ${{ secrets.PROJECT_ID }}
277353 E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
@@ -311,13 +387,23 @@ jobs:
311387 with :
312388 name : test-release
313389 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+
317400 - name : Prepull the pre-built image
318401 run : docker pull ${REGISTRY}/${IMAGE_NAME}:${TAG}
402+ env :
403+ TAG : ${{ steps.meta.outputs.version }}
319404 - name : " e2e-workload-upgrade"
320405 env :
406+ TAG : ${{ steps.meta.outputs.version }}
321407 PACKET_API_KEY : ${{ secrets.PACKET_API_TOKEN }}
322408 PROJECT_ID : ${{ secrets.PROJECT_ID }}
323409 E2E_CONF_FILE_SOURCE : " ${{ github.workspace }}/test/e2e/config/packet-ci-actions.yaml"
0 commit comments