2323 IMAGE_NAME : " coollabsio/coolify"
2424
2525jobs :
26- amd64 :
27- runs-on : ubuntu-latest
28- steps :
29- - uses : actions/checkout@v4
30-
31- - name : Sanitize branch name for Docker tag
32- id : sanitize
33- run : |
34- # Replace slashes and other invalid characters with dashes
35- SANITIZED_NAME=$(echo "${{ github.ref_name }}" | sed 's/[\/]/-/g')
36- echo "tag=${SANITIZED_NAME}" >> $GITHUB_OUTPUT
37-
38- - name : Login to ${{ env.GITHUB_REGISTRY }}
39- uses : docker/login-action@v3
40- with :
41- registry : ${{ env.GITHUB_REGISTRY }}
42- username : ${{ github.actor }}
43- password : ${{ secrets.GITHUB_TOKEN }}
44-
45- - name : Login to ${{ env.DOCKER_REGISTRY }}
46- uses : docker/login-action@v3
47- with :
48- registry : ${{ env.DOCKER_REGISTRY }}
49- username : ${{ secrets.DOCKER_USERNAME }}
50- password : ${{ secrets.DOCKER_TOKEN }}
51-
52- - name : Build and Push Image
53- uses : docker/build-push-action@v6
54- with :
55- context : .
56- file : docker/production/Dockerfile
57- platforms : linux/amd64
58- push : true
59- tags : |
60- ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}
61- ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}
62-
63- aarch64 :
64- runs-on : [self-hosted, arm64]
26+ build-push :
27+ strategy :
28+ matrix :
29+ include :
30+ - arch : amd64
31+ platform : linux/amd64
32+ runner : ubuntu-24.04
33+ - arch : aarch64
34+ platform : linux/aarch64
35+ runner : ubuntu-24.04-arm
36+ runs-on : ${{ matrix.runner }}
6537 permissions :
6638 contents : read
6739 packages : write
6840 steps :
69- - uses : actions/checkout@v4
41+ - uses : actions/checkout@v5
7042
7143 - name : Sanitize branch name for Docker tag
7244 id : sanitize
7547 SANITIZED_NAME=$(echo "${{ github.ref_name }}" | sed 's/[\/]/-/g')
7648 echo "tag=${SANITIZED_NAME}" >> $GITHUB_OUTPUT
7749
50+ - name : Set up Docker Buildx
51+ uses : docker/setup-buildx-action@v3
52+
7853 - name : Login to ${{ env.GITHUB_REGISTRY }}
7954 uses : docker/login-action@v3
8055 with :
@@ -89,25 +64,29 @@ jobs:
8964 username : ${{ secrets.DOCKER_USERNAME }}
9065 password : ${{ secrets.DOCKER_TOKEN }}
9166
92- - name : Build and Push Image
67+ - name : Build and Push Image (${{ matrix.arch }})
9368 uses : docker/build-push-action@v6
9469 with :
9570 context : .
9671 file : docker/production/Dockerfile
97- platforms : linux/aarch64
72+ platforms : ${{ matrix.platform }}
9873 push : true
9974 tags : |
100- ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64
101- ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64
75+ ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-${{ matrix.arch }}
76+ ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-${{ matrix.arch }}
77+ cache-from : |
78+ type=gha,scope=build-${{ matrix.arch }}
79+ type=registry,ref=${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.arch }}
80+ cache-to : type=gha,mode=max,scope=build-${{ matrix.arch }}
10281
10382 merge-manifest :
104- runs-on : ubuntu-latest
83+ runs-on : ubuntu-24.04
84+ needs : build-push
10585 permissions :
10686 contents : read
10787 packages : write
108- needs : [amd64, aarch64]
10988 steps :
110- - uses : actions/checkout@v4
89+ - uses : actions/checkout@v5
11190
11291 - name : Sanitize branch name for Docker tag
11392 id : sanitize
@@ -135,13 +114,15 @@ jobs:
135114 - name : Create & publish manifest on ${{ env.GITHUB_REGISTRY }}
136115 run : |
137116 docker buildx imagetools create \
138- --append ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64 \
117+ ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-amd64 \
118+ ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64 \
139119 --tag ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}
140120
141121 - name : Create & publish manifest on ${{ env.DOCKER_REGISTRY }}
142122 run : |
143123 docker buildx imagetools create \
144- --append ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64 \
124+ ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-amd64 \
125+ ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}-aarch64 \
145126 --tag ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.sanitize.outputs.tag }}
146127
147128 - uses : sarisia/actions-status-discord@v1
0 commit comments