Skip to content

Commit 3afcd1a

Browse files
authored
Merge pull request #479 from permitio/rk/fix-release-workflow
Fix build and push workflow (Correctly support multi arch)
2 parents 147f7c9 + e8e1dcf commit 3afcd1a

File tree

1 file changed

+54
-30
lines changed

1 file changed

+54
-30
lines changed

.github/workflows/on_release.yml

Lines changed: 54 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,17 @@ jobs:
3737
fetch-depth: 0
3838

3939
- name: Set up QEMU
40-
uses: docker/setup-qemu-action@v1
40+
uses: docker/setup-qemu-action@v2
4141

4242
- name: Set up Docker Buildx
43-
uses: docker/setup-buildx-action@v1
43+
uses: docker/setup-buildx-action@v2
44+
45+
- name: Login to DockerHub
46+
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true') }}
47+
uses: docker/login-action@v2
48+
with:
49+
username: ${{ secrets.DOCKERHUB_USERNAME }}
50+
password: ${{ secrets.DOCKERHUB_TOKEN }}
4451

4552
- name: Get version tag from github release
4653
if: github.event_name == 'release' && github.event.action == 'created'
@@ -56,53 +63,44 @@ jobs:
5663
run: |
5764
echo "The version tag that will be published to docker hub is: ${{ env.opal_version_tag }}"
5865
59-
- name: Build client
66+
- name: Build client for testing
6067
id: build_client
61-
uses: docker/build-push-action@v2
68+
uses: docker/build-push-action@v4
6269
with:
6370
file: docker/Dockerfile
64-
platforms: linux/amd64,linux/arm64
6571
push: false
6672
target: client
6773
cache-from: type=registry,ref=permitio/opal-client:latest
6874
cache-to: type=inline
6975
load: true
7076
tags: |
7177
permitio/opal-client:test
72-
permitio/opal-client:latest
73-
permitio/opal-client:${{ env.opal_version_tag }}
7478
75-
- name: Build client-standalone
79+
- name: Build client-standalone for testing
7680
id: build_client_standalone
77-
uses: docker/build-push-action@v2
81+
uses: docker/build-push-action@v4
7882
with:
7983
file: docker/Dockerfile
80-
platforms: linux/amd64,linux/arm64
8184
push: false
8285
target: client-standalone
8386
cache-from: type=registry,ref=permitio/opal-client-standalone:latest
8487
cache-to: type=inline
8588
load: true
8689
tags: |
8790
permitio/opal-client-standalone:test
88-
permitio/opal-client-standalone:latest
89-
permitio/opal-client-standalone:${{ env.opal_version_tag }}
9091
91-
- name: Build server
92+
- name: Build server for testing
9293
id: build_server
93-
uses: docker/build-push-action@v2
94+
uses: docker/build-push-action@v4
9495
with:
9596
file: docker/Dockerfile
96-
platforms: linux/amd64,linux/arm64
9797
push: false
9898
target: server
9999
cache-from: type=registry,ref=permitio/opal-server:latest
100100
cache-to: type=inline
101101
load: true
102102
tags: |
103103
permitio/opal-server:test
104-
permitio/opal-server:latest
105-
permitio/opal-server:${{ env.opal_version_tag }}
106104
107105
# TEST PHASE
108106
- name: Create modified docker compose file
@@ -121,23 +119,49 @@ jobs:
121119
- name: Output local docker images
122120
run: docker image ls --digests | grep opal
123121

124-
- name: Login to DockerHub
125-
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true') }}
126-
uses: docker/login-action@v1
127-
with:
128-
username: ${{ secrets.DOCKERHUB_USERNAME }}
129-
password: ${{ secrets.DOCKERHUB_TOKEN }}
130-
131122
# pushes the *same* docker images that were previously tested as part of e2e sanity test.
132123
# each image is pushed with the versioned tag first, if it succeeds the image is pushed with the latest tag as well.
133-
- name: Push client
124+
- name: Build & Push client
134125
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true') }}
135-
run: docker push permitio/opal-client:${{ env.opal_version_tag }} && docker push permitio/opal-client:latest
126+
id: build_push_client
127+
uses: docker/build-push-action@v4
128+
with:
129+
file: docker/Dockerfile
130+
platforms: linux/amd64,linux/arm64
131+
push: true
132+
target: client
133+
cache-from: type=registry,ref=permitio/opal-client:latest
134+
cache-to: type=inline
135+
tags: |
136+
permitio/opal-client:latest
137+
permitio/opal-client:${{ env.opal_version_tag }}
136138
137-
- name: Push client-standalone
139+
- name: Build client-standalone
138140
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true') }}
139-
run: docker push permitio/opal-client-standalone:${{ env.opal_version_tag }} && docker push permitio/opal-client-standalone:latest
141+
id: build_push_client_standalone
142+
uses: docker/build-push-action@v4
143+
with:
144+
file: docker/Dockerfile
145+
platforms: linux/amd64,linux/arm64
146+
push: true
147+
target: client-standalone
148+
cache-from: type=registry,ref=permitio/opal-client-standalone:latest
149+
cache-to: type=inline
150+
tags: |
151+
permitio/opal-client-standalone:latest
152+
permitio/opal-client-standalone:${{ env.opal_version_tag }}
140153
141-
- name: Push server
154+
- name: Build server
142155
if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true') }}
143-
run: docker push permitio/opal-server:${{ env.opal_version_tag }} && docker push permitio/opal-server:latest
156+
id: build_push_server
157+
uses: docker/build-push-action@v4
158+
with:
159+
file: docker/Dockerfile
160+
platforms: linux/amd64,linux/arm64
161+
push: true
162+
target: server
163+
cache-from: type=registry,ref=permitio/opal-server:latest
164+
cache-to: type=inline
165+
tags: |
166+
permitio/opal-server:latest
167+
permitio/opal-server:${{ env.opal_version_tag }}

0 commit comments

Comments
 (0)