diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index a3dfadc1..56d38ad4 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -8,8 +8,27 @@ on: - '*' jobs: - build-containers: + build-containers-common: runs-on: ubuntu-latest + outputs: + containerver: ${{ steps.getcontainerver.outputs.containerver }} + steps: + - name: Get Container Version + id: getcontainerver + run: | + echo "containerver=$(date +'%s')" >> "$GITHUB_OUTPUT" + + build-containers: + needs: build-containers-common + strategy: + matrix: + include: + - os: ubuntu-latest + arch: [amd64] + - os: ubuntu-22.04-arm + arch: [arm64] + + runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 @@ -26,24 +45,41 @@ jobs: - name: docker build run: ./var/docker/docker-build.sh - - name: Get date - run: | - echo "DATE=$(date +'%s')" >> "$GITHUB_ENV" - - name: Print post-build debug info run: | docker images - name: docker tag + env: + CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | - docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} - docker push ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} + docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ matrix.arch }}-${{ env.CONTAINERVER }} + docker push ghcr.io/gitroomhq/postiz-app:${{ matrix.arch }}-${{ env.CONTAINERVER }} - docker tag ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} ghcr.io/gitroomhq/postiz-app:latest - docker push ghcr.io/gitroomhq/postiz-app:latest + docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} + docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} - docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} - docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} - - docker tag ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} ghcr.io/gitroomhq/postiz-devcontainer:latest + docker tag ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} ghcr.io/gitroomhq/postiz-devcontainer:latest docker push ghcr.io/gitroomhq/postiz-devcontainer:latest + + build-container-manifest: + needs: build-containers + runs-on: ubuntu-latest + steps: + - name: Login to ghcr + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + + - name: Create Docker Manifest + env: + CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} + run: | + docker manifest create \ + ghcr.io/gitroomhq/postiz-app:latest \ + ghcr.io/gitroomhq/postiz-app:amd64-${{ needs.build-containers.outputs.containerver }} \ + ghcr.io/gitroomhq/postiz-app:arm64-${{ needs.build-containers.outputs.containerver }} + + docker manifest push ghcr.io/gitroomhq/postiz-app:latest