A GitHub Action for adding many tags to an existing image in a Docker Registry without changing the digest, using Docker Registry API V2.
- uses: shrink/actions-docker-registry-tag@v4
with:
registry: ghcr.io
repository: ${{ github.repository }}
target: sha-${{ github.sha }}
tags: |
v1.0.0
latest
📦 Automatic Release Packaging is used by this action, please reference by tag or commit hash in your Workflows.
Token is an optional input for GitHub's Container Registry. Ensure the Actions token has permission to write to the package repository by granting access as described in "About GitHub Packages with GitHub Actions".
ID | Description | Examples |
---|---|---|
registry |
Registry API root domain | ghcr.io index.docker.io |
token |
Bearer token for the Registry API | ${{ secrets.DOCKER_KEY }} |
repository |
Image repository name | shrink/example |
target |
Tag of the existing image | branch-name sha-1150f2f |
tags |
Tag(s) to add to the target (new-line delimited) | v1.0.1 latest |
No outputs.
Add Semantic Version tag to a commit's image in registry when a new tag is
pushed to the repository. The target image is assumed to have been tagged with
sha-${{ github.sha }}
on build.
name: Tag Image With Version
on:
push:
tags:
- 'v*.*.*'
jobs:
add-version-tag:
runs-on: ubuntu-latest
steps:
- id: version
uses: battila7/get-version-action@v2
- name: Add Semantic Version tag to Docker Image
uses: shrink/actions-docker-registry-tag@v4
with:
registry: ghcr.io
repository: '${{ github.repository }}'
target: 'sha-${{ github.sha }}'
tags: '${{ steps.version.outputs.version }}'
Packaging (creation of dist
) happens automatically when a new tag is created.
Any reference to this Action in a Workflow must use a tag (mutable) or
the commit hash of a tag (immutable).
✅ uses: shrink/actions-docker-registry-tag@v4
✅ uses: shrink/actions-docker-registry-tag@v4.0.0
✅ uses: shrink/actions-docker-registry-tag@57e97909852876c02080eff4d73b2e5e779b845b
❌ uses: shrink/actions-docker-registry-tag@main
The blog post Package GitHub Actions automatically with GitHub Actions describes how this achieved.