Skip to content

Commit c9ea95b

Browse files
committed
feat(workflows): Use matrix build strategy for frontend and backend images
1 parent d79b1c7 commit c9ea95b

1 file changed

Lines changed: 19 additions & 38 deletions

File tree

Lines changed: 19 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
run-name: "Build and Release Web version ${{ github.ref_name }}"
2-
32
on:
43
push:
54
branches:
65
- web
76
workflow_dispatch:
87

98
env:
10-
FRONTEND_IMAGE: ghcr.io/dk10ws/slcm-frontend
11-
BACKEND_IMAGE: ghcr.io/dk10ws/slcm-backend
9+
IMAGE_PREFIX: ghcr.io/dk10ws/slcm
1210

1311
jobs:
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

Comments
 (0)