From a85a0b21b69e1c5fd041a9a70dff7100c0811896 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Mon, 4 Nov 2024 14:00:32 -0500 Subject: [PATCH] push to multiple docker registries --- .github/workflows/build_images.yml | 84 +++++++++++++++++------------- 1 file changed, 49 insertions(+), 35 deletions(-) diff --git a/.github/workflows/build_images.yml b/.github/workflows/build_images.yml index cc95c34..049da76 100644 --- a/.github/workflows/build_images.yml +++ b/.github/workflows/build_images.yml @@ -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/') @@ -65,35 +55,51 @@ 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 }} @@ -101,32 +107,40 @@ jobs: 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