Closed itavero closed 2 weeks ago
In need of this too (I made this me too comment, since this repo does not seem to have that much traction currently. Sorry for the email notification OP :D)
Hey @kubo6472 @itavero Apologies for the delay. I meant to follow up late last week. We have recently stopped usage of this action ourselves and been migrating to the manifest shown below. It should be a drop in replacement if you are using ghcr.io but also give you flexibility to leverage caching, multi-architecture builds and much more.
name: Publish to GHCR.io
on: [push]
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build_tag_push_to_ghcr:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3
- name: Setup Docker buildx
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch,prefix=
type=ref,event=tag,prefix=
type=sha,format=short,prefix=
type=sha,format=long,prefix=
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
cache-from: type=gha
cache-to: type=gha,mode=max
ref for multi-platform builds:
https://github.com/docker/setup-qemu-action?tab=readme-ov-file#inputs https://github.com/docker/setup-buildx-action?tab=readme-ov-file#inputs
I've been using build-push-action @v6 along with qemu, buildx and caching. I thought you made some magic potion that can do this automagically.
@kubo6472 not that I know of. We were heavily opionated and i believe our action only supported x86 builds. I'd recommend switching back to what you had before or leveraging the example I provided above.
Does this action have the ability to do a multi-platform build?
Currently the resulting image from the GitHub workflow is targeted at
linux/amd64
, but I also need anlinux/arm64/v8
build.