Skip to content

Commit 09c4eeb

Browse files
authored
Merge pull request #12 from Dan6erbond/develop
2 parents efa120b + c846fdc commit 09c4eeb

File tree

4 files changed

+200
-183
lines changed

4 files changed

+200
-183
lines changed

.github/workflows/docker-publish.yml

+27-25
Original file line numberDiff line numberDiff line change
@@ -18,45 +18,47 @@ on:
1818

1919
env:
2020
REGISTRY: ghcr.io
21-
IMAGE_NAME_FRONTEND: ${{ github.repository }}-frontend
22-
IMAGE_NAME_SERVER: ${{ github.repository }}-server
2321

2422
jobs:
25-
build-and-push-image:
23+
build-and-push:
2624
runs-on: ubuntu-latest
2725
permissions:
2826
contents: read
2927
packages: write
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
image:
32+
- ${{ github.repository }}-frontend
33+
- ${{ github.repository }}-server
34+
include:
35+
- image: ${{ github.repository }}-frontend
36+
context: "."
37+
- image: ${{ github.repository }}-server
38+
context: "server"
3039
steps:
3140
- name: Checkout repository
3241
uses: actions/checkout@v3
3342
- name: Log in to the Container registry
34-
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
43+
uses: docker/login-action@v2
3544
with:
3645
registry: ${{ env.REGISTRY }}
3746
username: ${{ github.actor }}
3847
password: ${{ secrets.GH_PAT }}
39-
- name: Extract frontend metadata (tags, labels) for Docker
40-
id: meta-frontend
41-
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
48+
- name: Set up QEMU
49+
uses: docker/setup-qemu-action@v2
50+
- name: Set up Docker Buildx
51+
uses: docker/setup-buildx-action@v2
52+
- name: Extract metadata (tags, labels) for Docker
53+
id: meta
54+
uses: docker/metadata-action@v4
4255
with:
43-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_FRONTEND }}
44-
- name: Build and push frontend Docker image
45-
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
56+
images: ${{ env.REGISTRY }}/${{ matrix.image }}
57+
- name: Build and push Docker image
58+
uses: docker/build-push-action@v4
4659
with:
47-
context: .
60+
context: ${{ matrix.context }}
61+
platforms: linux/amd64,linux/arm64
4862
push: true
49-
tags: ${{ steps.meta-frontend.outputs.tags }}
50-
labels: ${{ steps.meta-frontend.outputs.labels }}
51-
- name: Extract server metadata (tags, labels) for Docker
52-
id: meta-server
53-
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
54-
with:
55-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_SERVER }}
56-
- name: Build and push server Docker image
57-
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
58-
with:
59-
context: server
60-
push: true
61-
tags: ${{ steps.meta-server.outputs.tags }}
62-
labels: ${{ steps.meta-server.outputs.labels }}
63+
tags: ${{ steps.meta.outputs.tags }}
64+
labels: ${{ steps.meta.outputs.labels }}

.github/workflows/main.yml

+43-37
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ permissions:
1616
jobs:
1717
release:
1818
runs-on: ubuntu-latest
19+
outputs:
20+
version: ${{ steps.release.outputs.version }}
1921
steps:
2022
- name: Checkout repository
2123
uses: actions/checkout@v3
@@ -36,53 +38,57 @@ jobs:
3638
with:
3739
body_path: GITHUB_CHANGELOG.md
3840
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
3962
- name: Log in to the Container registry
40-
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
63+
uses: docker/login-action@v2
4164
with:
4265
registry: ${{ env.REGISTRY }}
4366
username: ${{ github.actor }}
4467
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
4572
- 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
7075
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
7479
uses: ASzc/change-string-case-action@v1
7580
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
7984
uses: ASzc/change-string-case-action@v1
8085
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
8489
with:
85-
context: server
90+
context: ${{ matrix.context }}
91+
platforms: linux/amd64,linux/arm64
8692
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 }}

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ WORKDIR /app
99
# Install dependencies based on the preferred package manager
1010
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
1111
RUN \
12-
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
12+
if [ -f yarn.lock ]; then yarn --frozen-lockfile --network-timeout 600000; \
1313
elif [ -f package-lock.json ]; then npm ci; \
1414
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
1515
else echo "Lockfile not found." && exit 1; \

0 commit comments

Comments
 (0)