Skip to content

🐳 Add many tags to an image in a Docker Registry

License

Notifications You must be signed in to change notification settings

shrink/actions-docker-registry-tag

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Docker Registry Tag

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.

Inputs

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

Outputs

No outputs.

Examples

Tag Image with Semantic Version

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 }}'

Automatic Release Packaging

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.