88 - ' *'
99
1010jobs :
11- build-containers :
11+ build-containers-common :
1212 runs-on : ubuntu-latest
13+ outputs :
14+ containerver : ${{ steps.getcontainerver.outputs.containerver }}
15+ steps :
16+ - name : Get Container Version
17+ id : getcontainerver
18+ run : |
19+ echo "containerver=$(date +'%s')" >> "$GITHUB_OUTPUT"
20+
21+ build-containers :
22+ needs : build-containers-common
23+ strategy :
24+ matrix :
25+ include :
26+ - runnertags : ubuntu-latest
27+ arch : amd64
28+ - runnertags : [self-hosted, ARM64]
29+ arch : arm64
30+
31+ runs-on : ${{ matrix.runnertags }}
1332 steps :
1433 - name : Checkout
1534 uses : actions/checkout@v4
@@ -26,24 +45,41 @@ jobs:
2645 - name : docker build
2746 run : ./var/docker/docker-build.sh
2847
29- - name : Get date
30- run : |
31- echo "DATE=$(date +'%s')" >> "$GITHUB_ENV"
32-
3348 - name : Print post-build debug info
3449 run : |
3550 docker images
3651
3752 - name : docker tag
53+ env :
54+ CONTAINERVER : ${{ needs.build-containers-common.outputs.containerver }}
3855 run : |
39- docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ env.DATE }}
40- docker push ghcr.io/gitroomhq/postiz-app:${{ env.DATE }}
41-
42- docker tag ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} ghcr.io/gitroomhq/postiz-app:latest
43- docker push ghcr.io/gitroomhq/postiz-app:latest
56+ docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ matrix.arch }}-${{ env.CONTAINERVER }}
57+ docker push ghcr.io/gitroomhq/postiz-app:${{ matrix.arch }}-${{ env.CONTAINERVER }}
4458
45- docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }}
46- docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }}
59+ docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }}
60+ docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }}
4761
48- docker tag ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} ghcr.io/gitroomhq/postiz-devcontainer:latest
62+ docker tag ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} ghcr.io/gitroomhq/postiz-devcontainer:latest
4963 docker push ghcr.io/gitroomhq/postiz-devcontainer:latest
64+
65+ build-container-manifest :
66+ needs : [build-containers, build-containers-common]
67+ runs-on : ubuntu-latest
68+ steps :
69+ - name : Login to ghcr
70+ uses : docker/login-action@v3
71+ with :
72+ registry : ghcr.io
73+ username : ${{ github.actor }}
74+ password : ${{ github.token }}
75+
76+ - name : Create Docker Manifest
77+ env :
78+ CONTAINERVER : ${{ needs.build-containers-common.outputs.containerver }}
79+ run : |
80+ docker manifest create \
81+ ghcr.io/gitroomhq/postiz-app:latest \
82+ ghcr.io/gitroomhq/postiz-app:amd64-${{ env.CONTAINERVER }} \
83+ ghcr.io/gitroomhq/postiz-app:arm64-${{ env.CONTAINERVER }}
84+
85+ docker manifest push ghcr.io/gitroomhq/postiz-app:latest
0 commit comments