All Projects → akhilerm → tag-push-action

akhilerm / tag-push-action

Licence: MIT license
Github action to copy/retag multiarch images from one registry to another

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to tag-push-action

docker-elasticsearch
Multi-architecture (arm, x86) Docker image for Elasticsearch
Stars: ✭ 14 (-39.13%)
Mutual labels:  multiarch, buildx
bake-action
GitHub Action to use Docker Buildx Bake as a high-level build command
Stars: ✭ 52 (+126.09%)
Mutual labels:  buildx, github-actions-docker
Scummvm
ScummVM main repository
Stars: ✭ 1,666 (+7143.48%)
Mutual labels:  multiplatform
Kaskade
[INACTIVE] Simplifying state management
Stars: ✭ 223 (+869.57%)
Mutual labels:  multiplatform
Iat patcher
Persistent IAT hooking application - based on bearparser
Stars: ✭ 170 (+639.13%)
Mutual labels:  multiplatform
Fmt
A modern formatting library
Stars: ✭ 12,698 (+55108.7%)
Mutual labels:  multiplatform
Kotlin Multiplatform Template
Kotlin Multiplatform Template
Stars: ✭ 185 (+704.35%)
Mutual labels:  multiplatform
Ccc
💰 Currency Converter Calculator with power of Kotlin Multiplatform
Stars: ✭ 109 (+373.91%)
Mutual labels:  multiplatform
Oolong
MVU for Kotlin Multiplatform
Stars: ✭ 248 (+978.26%)
Mutual labels:  multiplatform
Yyets flutter
人人影视客户端 for Flutter
Stars: ✭ 157 (+582.61%)
Mutual labels:  multiplatform
Fgui
A feature rich graphical user interface.
Stars: ✭ 219 (+852.17%)
Mutual labels:  multiplatform
Castor3d
Multi-OS 3D engine.
Stars: ✭ 156 (+578.26%)
Mutual labels:  multiplatform
Multiplatform Compose
A Kotlin library to use Jetpack Compose in Android and iOS. Allow to write UI for both in Kotin. Still experimental as many compose features are not yet available.
Stars: ✭ 126 (+447.83%)
Mutual labels:  multiplatform
Segs
💪 SEGS - Super Entity Game Server
Stars: ✭ 190 (+726.09%)
Mutual labels:  multiplatform
Ast
Generic AST parsing library for kotlin multiplatform
Stars: ✭ 113 (+391.3%)
Mutual labels:  multiplatform
Unitygoogledrive
Google Drive SDK for Unity game engine
Stars: ✭ 236 (+926.09%)
Mutual labels:  multiplatform
Apertusvr
Virtual Reality Software Library
Stars: ✭ 112 (+386.96%)
Mutual labels:  multiplatform
Uuid
Kotlin Multiplatform UUID
Stars: ✭ 146 (+534.78%)
Mutual labels:  multiplatform
Px sched
Single Header C++11 Task Scheduler
Stars: ✭ 182 (+691.3%)
Mutual labels:  multiplatform
Apollo Android
🤖  A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.
Stars: ✭ 2,949 (+12721.74%)
Mutual labels:  multiplatform

tag-push-action

About

Github action to retag and push multiplatform images to multiple registries

💡 See also:

The v1 version of this action heavily relied on work done by @tonistiigi.

The current version uses crane from google for copying images, and the action itself is a modified version of script written by @crazymax

Usage

Basic

name: Push-Image

on: push

jobs:
  push-image:
    runs-on: ubuntu-latest
    steps:

      - name: Login Quay
        uses: docker/login-action@v1
        with:
          registry: 'quay.io'
          username: ${{ secrets.QUAY_USERNAME }}
          password: ${{ secrets.QUAY_TOKEN }}

      - name: Login Dockerhub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Push image
        uses: akhilerm/[email protected]
        with:
          src: docker.io/akhilerm/node-disk-manager:ci
          dst: |
            quay.io/akhilerm/node-disk-manager-amd64:ci
  1. Login to all the registries from which you want to pull and push the multiplatform image.

  2. Specify the src and dst registry, both of which are mandatory fields. The action allows multiple destination registries specified as a yaml string.

NOTE: If dockerhub is used, make sure that docker.io is specified in the image name

Using with docker/metadata-action

The action can be used alongside metadata-action to generate tags easily.

name: Push-Image

on: push

jobs:
  push-image:
    runs-on: ubuntu-latest
    steps:

      - name: Login Dockerhub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v3
        with:
          images: docker.io/akhilerm/node-disk-manager     

      - name: Push image
        uses: akhilerm/[email protected]
        with:
          src: docker.io/akhilerm/node-disk-manager:ci
          dst: |
            ${{ steps.meta.outputs.tags }}

The output tags from the meta step can be used as destination tags for this github action.

Use a custom docker config file

The standard docker config path on GitHub runner is /home/runner/.docker/config.json. In case you're running on a custom GitHub runner, and your config path is not standard, then the docker-config-path can be used.

  - name: Push image
    uses: akhilerm/[email protected]
    with:
      docker-config-path: /home/myuser/.docker/config.json
      src: docker.io/akhilerm/node-disk-manager:ci
      dst: |
        quay.io/akhilerm/node-disk-manager-amd64:ci
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].