# name: release - publish docker image to ghcr (latest) # env: # IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/archgw # on: # release: # types: [published] # jobs: # build-arm64: # runs-on: [linux-arm64] # permissions: { contents: read, packages: write } # steps: # - uses: actions/checkout@v4 # - uses: docker/login-action@v3 # with: # registry: ghcr.io # username: ${{ github.actor }} # password: ${{ secrets.GITHUB_TOKEN }} # - id: meta # uses: docker/metadata-action@v5 # with: # images: ${{ env.IMAGE_NAME }} # tags: | # type=raw,value={{tag}} # - name: Build and Push ARM64 Image # uses: docker/build-push-action@v5 # with: # context: . # file: ./arch/Dockerfile # platforms: linux/arm64 # push: true # tags: ${{ steps.meta.outputs.tags }}-arm64 # build-amd64: # runs-on: ubuntu-latest # permissions: { contents: read, packages: write } # steps: # - uses: actions/checkout@v4 # - uses: docker/login-action@v3 # with: # registry: ghcr.io # username: ${{ github.actor }} # password: ${{ secrets.GITHUB_TOKEN }} # - id: meta # uses: docker/metadata-action@v5 # with: # images: ${{ env.IMAGE_NAME }} # tags: | # type=raw,value={{tag}} # - name: Build and Push AMD64 Image # uses: docker/build-push-action@v5 # with: # context: . # file: ./arch/Dockerfile # platforms: linux/amd64 # push: true # tags: ${{ steps.meta.outputs.tags }}-amd64 # create-manifest: # runs-on: ubuntu-latest # needs: [build-arm64, build-amd64] # permissions: { contents: read, packages: write } # steps: # - uses: docker/login-action@v3 # with: # registry: ghcr.io # username: ${{ github.actor }} # password: ${{ secrets.GITHUB_TOKEN }} # - id: meta # uses: docker/metadata-action@v5 # with: # images: ${{ env.IMAGE_NAME }} # tags: | # type=raw,value={{tag}} # - name: Create Multi-Arch Manifest # run: | # docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \ # ${{ steps.meta.outputs.tags }}-arm64 \ # ${{ steps.meta.outputs.tags }}-amd64