11run-name : " Build and Release Web version ${{ github.ref_name }}"
2-
32on :
43 push :
54 branches :
65 - web
76 workflow_dispatch :
87
98env :
10- FRONTEND_IMAGE : ghcr.io/dk10ws/slcm-frontend
11- BACKEND_IMAGE : ghcr.io/dk10ws/slcm-backend
9+ IMAGE_PREFIX : ghcr.io/dk10ws/slcm
1210
1311jobs :
1412 build :
15- name : Build & Release Web version
13+ name : Build ${{ matrix.service }} (${{ matrix.arch }})
1614 strategy :
1715 matrix :
16+ arch : [amd64, arm64]
17+ service : [frontend, backend]
1818 include :
1919 - arch : amd64
2020 runner : ubuntu-latest
2121 - arch : arm64
2222 runner : ubuntu-24.04-arm
2323 runs-on : ${{ matrix.runner }}
24-
2524 steps :
2625 - name : Checkout Repository
2726 uses : actions/checkout@v5
@@ -38,34 +37,24 @@ jobs:
3837 - name : Set up Docker Buildx
3938 uses : docker/setup-buildx-action@v3
4039
41- - name : Build and Push frontend Docker Image
42- uses : docker/build-push-action@v6
43- with :
44- context : frontend
45- push : true
46- platforms : linux/${{ matrix.arch }}
47- tags : |
48- ${{ env.FRONTEND_IMAGE }}:latest-${{ matrix.arch }}
49- ${{ env.FRONTEND_IMAGE }}:${{ github.sha }}-${{ matrix.arch }}
50- cache-from : type=gha
51- cache-to : type=gha,mode=max
52-
53- - name : Build and Push backend Docker Image
40+ - name : Build and Push ${{ matrix.service }} Docker Image
5441 uses : docker/build-push-action@v6
5542 with :
56- context : backend
43+ context : ${{ matrix.service }}
5744 push : true
5845 platforms : linux/${{ matrix.arch }}
5946 tags : |
60- ${{ env.BACKEND_IMAGE }}:latest-${{ matrix.arch }}
61- ${{ env.BACKEND_IMAGE }}:${{ github.sha }}-${{ matrix.arch }}
62- cache-from : type=gha
63- cache-to : type=gha,mode=max
47+ ${{ env.IMAGE_PREFIX }}-${{ matrix.service }}:latest-${{ matrix.arch }}
48+ ${{ env.IMAGE_PREFIX }}-${{ matrix.service }}:${{ github.sha }}-${{ matrix.arch }}
49+ cache-from : type=gha,scope=${{ matrix.service }}-${{ matrix.arch }}
50+ cache-to : type=gha,mode=max,scope=${{ matrix.service }}-${{ matrix.arch }}
6451
6552 merge-manifest :
6653 needs : build
67- runs-on : ubuntu-latest
68-
54+ runs-on : ubuntu-slim
55+ strategy :
56+ matrix :
57+ service : [frontend, backend]
6958 steps :
7059 - name : Log in to GitHub Container Registry
7160 uses : docker/login-action@v3
@@ -77,18 +66,10 @@ jobs:
7766 - name : Set up Docker Buildx
7867 uses : docker/setup-buildx-action@v3
7968
80- - name : Create multi-arch manifest for frontend
81- run : |
82- docker buildx imagetools create \
83- -t ${{ env.FRONTEND_IMAGE }}:${{ github.sha }} \
84- -t ${{ env.FRONTEND_IMAGE }}:latest \
85- ${{ env.FRONTEND_IMAGE }}:${{ github.sha }}-amd64 \
86- ${{ env.FRONTEND_IMAGE }}:${{ github.sha }}-arm64
87-
88- - name : Create multi-arch manifest for backend
69+ - name : Create multi-arch manifest for ${{ matrix.service }}
8970 run : |
9071 docker buildx imagetools create \
91- -t ${{ env.BACKEND_IMAGE }}:${{ github.sha }} \
92- -t ${{ env.BACKEND_IMAGE }}:latest \
93- ${{ env.BACKEND_IMAGE }}:${{ github.sha }}-amd64 \
94- ${{ env.BACKEND_IMAGE }}:${{ github.sha }}-arm64
72+ -t ${{ env.IMAGE_PREFIX }}-${{ matrix.service }}:${{ github.sha }} \
73+ -t ${{ env.IMAGE_PREFIX }}-${{ matrix.service }}:latest \
74+ ${{ env.IMAGE_PREFIX }}-${{ matrix.service }}:${{ github.sha }}-amd64 \
75+ ${{ env.IMAGE_PREFIX }}-${{ matrix.service }}:${{ github.sha }}-arm64
0 commit comments