Skip to content

Commit

Permalink
push to multiple docker registries
Browse files Browse the repository at this point in the history
  • Loading branch information
techknowlogick authored Nov 4, 2024
1 parent 98489ca commit a85a0b2
Showing 1 changed file with 49 additions and 35 deletions.
84 changes: 49 additions & 35 deletions .github/workflows/build_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,16 @@ on:

jobs:
build:
runs-on: nscloud
runs-on: namespace-profile-xgo
permissions:
contents: read
packages: write
attestations: write
id-token: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: false
swap-storage: true
- name: get golang version 1
run: |
export VERSION=$(cat .golang_version | awk -F',' '{print $1}' | sed 's/go1/go-1/')
Expand Down Expand Up @@ -65,68 +55,92 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: build toolchain image
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
if: steps.toolchain_build.outputs.value != '0'
with:
context: docker/toolchain/
platforms: linux/amd64,linux/arm64
tags: techknowlogick/xgo:toolchain
tags: |
techknowlogick/xgo:toolchain
ghcr.io/techknowlogick/xgo:toolchain
push: true
file: docker/toolchain/Dockerfile
- name: build golang ${{ steps.golang_version_1.outputs.value }} image base
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: docker/${{ steps.golang_version_1.outputs.value }}/
platforms: linux/amd64,linux/arm64
tags: techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}-base
tags: |
techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}-base
ghcr.io/techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}-base
push: true
file: docker/${{ steps.golang_version_1.outputs.value }}/Dockerfile
build-contexts: |
toolchain=docker-image://techknowlogick/xgo:toolchain
- name: build golang ${{ steps.golang_version_1.outputs.value }} image
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
tags: techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }},techknowlogick/xgo:${{ steps.golang_version_1.outputs.wildcard }}
tags: |
techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}
techknowlogick/xgo:${{ steps.golang_version_1.outputs.wildcard }}
techknowlogick/xgo:latest
ghcr.io/techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}
ghcr.io/techknowlogick/xgo:${{ steps.golang_version_1.outputs.wildcard }}
ghcr.io/techknowlogick/xgo:latest
push: true
build-args: |
VERSION=${{ steps.golang_version_1.outputs.value }}
file: docker/build/Dockerfile
build-contexts: |
${{ steps.golang_version_1.outputs.value }}-base=docker-image://techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}-base
- name: build golang ${{ steps.golang_version_2.outputs.value }} image
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: docker/${{ steps.golang_version_2.outputs.value }}/
platforms: linux/amd64,linux/arm64
tags: techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}-base
tags: |
techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}-base
ghcr.io/techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}-base
push: true
file: docker/${{ steps.golang_version_2.outputs.value }}/Dockerfile
build-contexts: |
toolchain=docker-image://techknowlogick/xgo:toolchain
- name: build golang ${{ steps.golang_version_2.outputs.value }} image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
tags: techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }},techknowlogick/xgo:${{ steps.golang_version_2.outputs.wildcard }}
tags: |
techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}
techknowlogick/xgo:${{ steps.golang_version_2.outputs.wildcard }}
ghcr.io/techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}
ghcr.io/techknowlogick/xgo:${{ steps.golang_version_2.outputs.wildcard }}
push: true
build-args: |
VERSION=${{ steps.golang_version_2.outputs.value }}
file: docker/build/Dockerfile
build-contexts: |
${{ steps.golang_version_2.outputs.value }}-base=docker-image://techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}-base
- name: build latest image
uses: docker/build-push-action@v4
with:
context: docker/go-latest/
platforms: linux/amd64,linux/arm64
tags: techknowlogick/xgo:latest
push: true
file: docker/go-latest/Dockerfile
# - name: build latest image
# uses: docker/build-push-action@v6
# with:
# context: docker/go-latest/
# platforms: linux/amd64,linux/arm64
# tags: |
# techknowlogick/xgo:latest
# ghcr.io/techknowlogick/xgo:latest
# push: true
# file: docker/go-latest/Dockerfile

0 comments on commit a85a0b2

Please sign in to comment.