name: 'Push Docker Images' on: push: branches: [v4] workflow_dispatch: jobs: push: strategy: matrix: os: [ubuntu-24.04, ubuntu-24.04-arm] arch: [amd64, arm64] name: push runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Get commit sha id: sha run: | echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - uses: docker/setup-buildx-action@v3 - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - uses: docker/build-push-action@v6 with: push: true platforms: linux/${{ matrix.arch }} cache-from: type=gha cache-to: type=gha,mode=max provenance: false tags: | ghcr.io/diced/zipline:v4-${{ matrix.arch }} ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-${{ matrix.arch }} ammend-builds: runs-on: ubuntu-24.04 needs: push steps: - uses: actions/checkout@v4 - name: Get commit sha id: sha run: | echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - uses: docker/setup-buildx-action@v3 - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: pull images run: | docker pull --platform=linux/amd64 ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-amd64 docker pull --platform=linux/arm64 ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-arm64 - name: create manifests run: | docker manifest create ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }} \ --amend ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-amd64 \ --amend ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-arm64 && \ docker manifest create ghcr.io/diced/zipline:v4 \ --amend ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-amd64 \ --amend ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }}-arm64 - name: push manifests run: | docker manifest push ghcr.io/diced/zipline:v4-${{ steps.sha.outputs.short_sha }} && \ docker manifest push ghcr.io/diced/zipline:v4