@@ -16,6 +16,8 @@ permissions:
16
16
jobs :
17
17
release :
18
18
runs-on : ubuntu-latest
19
+ outputs :
20
+ version : ${{ steps.release.outputs.version }}
19
21
steps :
20
22
- name : Checkout repository
21
23
uses : actions/checkout@v3
@@ -36,53 +38,57 @@ jobs:
36
38
with :
37
39
body_path : GITHUB_CHANGELOG.md
38
40
tag_name : ${{ steps.release.outputs.version }}
41
+ build-and-push :
42
+ runs-on : ubuntu-latest
43
+ permissions :
44
+ contents : read
45
+ packages : write
46
+ needs :
47
+ - release
48
+ strategy :
49
+ fail-fast : false
50
+ matrix :
51
+ image :
52
+ - ${{ github.repository }}-frontend
53
+ - ${{ github.repository }}-server
54
+ include :
55
+ - image : ${{ github.repository }}-frontend
56
+ context : " ."
57
+ - image : ${{ github.repository }}-server
58
+ context : " server"
59
+ steps :
60
+ - name : Checkout repository
61
+ uses : actions/checkout@v3
39
62
- name : Log in to the Container registry
40
- uses : docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
63
+ uses : docker/login-action@v2
41
64
with :
42
65
registry : ${{ env.REGISTRY }}
43
66
username : ${{ github.actor }}
44
67
password : ${{ secrets.GH_PAT }}
68
+ - name : Set up QEMU
69
+ uses : docker/setup-qemu-action@v2
70
+ - name : Set up Docker Buildx
71
+ uses : docker/setup-buildx-action@v2
45
72
- name : Extract metadata (tags, labels) for Docker
46
- id : meta-frontend
47
- uses : docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
48
- with :
49
- images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_FRONTEND }}
50
- - name : Lowercase package
51
- id : tags1-frontend
52
- uses : ASzc/change-string-case-action@v1
53
- with :
54
- string : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_FRONTEND }}:${{ steps.release.outputs.version }}
55
- - name : Lowercase package
56
- id : tags2-frontend
57
- uses : ASzc/change-string-case-action@v1
58
- with :
59
- string : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_FRONTEND }}:latest
60
- - name : Build and push frontend Docker image
61
- uses : docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
62
- with :
63
- context : .
64
- push : true
65
- tags : ${{ steps.tags1-frontend.outputs.lowercase }},${{ steps.tags2-frontend.outputs.lowercase }}
66
- labels : ${{ steps.meta-frontend.outputs.labels }}
67
- - name : Extract metadata (tags, labels) for Docker
68
- id : meta-server
69
- uses : docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
73
+ id : meta
74
+ uses : docker/metadata-action@v4
70
75
with :
71
- images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_SERVER }}
72
- - name : Lowercase package
73
- id : tags1-server
76
+ images : ${{ env.REGISTRY }}/${{ matrix.image }}
77
+ - name : Lowercase package (version)
78
+ id : tags1
74
79
uses : ASzc/change-string-case-action@v1
75
80
with :
76
- string : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_SERVER }}:${{ steps .release.outputs.version }}
77
- - name : Lowercase package
78
- id : tags2-server
81
+ string : ${{ env.REGISTRY }}/${{ matrix.image }}:${{ needs .release.outputs.version }}
82
+ - name : Lowercase package (latest)
83
+ id : tags2
79
84
uses : ASzc/change-string-case-action@v1
80
85
with :
81
- string : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_SERVER }}:latest
82
- - name : Build and push server Docker image
83
- uses : docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
86
+ string : ${{ env.REGISTRY }}/${{ matrix.image }}:latest
87
+ - name : Build and push Docker image
88
+ uses : docker/build-push-action@v4
84
89
with :
85
- context : server
90
+ context : ${{ matrix.context }}
91
+ platforms : linux/amd64,linux/arm64
86
92
push : true
87
- tags : ${{ steps.tags1-server .outputs.lowercase }},${{ steps.tags2-server .outputs.lowercase }}
88
- labels : ${{ steps.meta-server .outputs.labels }}
93
+ tags : ${{ steps.tags1.outputs.lowercase }},${{ steps.tags2.outputs.lowercase }}
94
+ labels : ${{ steps.meta.outputs.labels }}
0 commit comments