From 866782893eb0b493be536be8c66568d4da966d15 Mon Sep 17 00:00:00 2001 From: "Sean T. Allen" Date: Wed, 30 Aug 2023 01:57:15 +0000 Subject: [PATCH] Push images to GitHub Container Registry in addition to DockerHub --- .../build-docker-images-on-release.bash | 24 +++++++++++++++---- .../release/build-latest-docker-images.bash | 13 ++++++++-- .github/workflows/latest-docker-image.yml | 9 ++++++- .github/workflows/release.yml | 9 ++++++- 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/.ci-scripts/release/build-docker-images-on-release.bash b/.ci-scripts/release/build-docker-images-on-release.bash index 8a4c193..a7ee0e0 100644 --- a/.ci-scripts/release/build-docker-images-on-release.bash +++ b/.ci-scripts/release/build-docker-images-on-release.bash @@ -52,12 +52,28 @@ set -o nounset # Version: "1.0.0" VERSION="${GITHUB_REF/refs\/tags\//}" -# Build and push :VERSION tag e.g. ponylang/ponyup:0.32.1 -DOCKER_TAG=${GITHUB_REPOSITORY}:"${VERSION}" +## DockerHub + +NAME="${GITHUB_REPOSITORY}" +# Build and push :VERSION tag e.g. ponylang/changelog-tool:0.32.1 +DOCKER_TAG="${NAME}:${VERSION}" +docker build --pull -t "${DOCKER_TAG}" . +docker push "${DOCKER_TAG}" + +# Build and push "release" tag e.g. ponylang/changelog-tool:release +DOCKER_TAG="${NAME}:release" +docker build --pull -t "${DOCKER_TAG}" . +docker push "${DOCKER_TAG}" + +## GitHub Container Registry + +NAME="ghcr.io/${GITHUB_REPOSITORY}" +# Build and push :VERSION tag e.g. ghcr.io/ponylang/changelog-tool:0.32.1 +DOCKER_TAG="${NAME}:${VERSION}" docker build --pull -t "${DOCKER_TAG}" . docker push "${DOCKER_TAG}" -# Build and push "release" tag e.g. ponylang/ponyup:release -DOCKER_TAG=${GITHUB_REPOSITORY}:release +# Build and push "release" tag e.g. ghcr.io/ponylang/changelog-tool:release +DOCKER_TAG="${NAME}:release" docker build --pull -t "${DOCKER_TAG}" . docker push "${DOCKER_TAG}" diff --git a/.ci-scripts/release/build-latest-docker-images.bash b/.ci-scripts/release/build-latest-docker-images.bash index 9c3f1a2..b944bcb 100644 --- a/.ci-scripts/release/build-latest-docker-images.bash +++ b/.ci-scripts/release/build-latest-docker-images.bash @@ -33,7 +33,16 @@ fi # allow above so we can display nice error messages for expected unset variables set -o nounset -# Build and push "latest" tag e.g. ponylang/ponyup:latest -DOCKER_TAG=${GITHUB_REPOSITORY}:latest +## DockerHub + +# Build and push "latest" tag e.g. ponylang/changelog-tool:latest +DOCKER_TAG="${GITHUB_REPOSITORY}:latest" +docker build --pull -t "${DOCKER_TAG}" . +docker push "${DOCKER_TAG}" + +## GitHub Container Registry + +# Build and push "latest" tag e.g. ghcr.io/ponylang/changelog-tool:latest +DOCKER_TAG="ghcr.io/${GITHUB_REPOSITORY}:latest" docker build --pull -t "${DOCKER_TAG}" . docker push "${DOCKER_TAG}" diff --git a/.github/workflows/latest-docker-image.yml b/.github/workflows/latest-docker-image.yml index 0eeb4e4..bb342f1 100644 --- a/.github/workflows/latest-docker-image.yml +++ b/.github/workflows/latest-docker-image.yml @@ -11,10 +11,17 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Docker login + - name: Login to DockerHub run: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + - name: Login to GitHub Container Registry + # v2.2.0 + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push run: bash .ci-scripts/release/build-latest-docker-images.bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 27b1724..b572ad3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,11 +46,18 @@ jobs: - pre-artefact-creation steps: - uses: actions/checkout@v3 - - name: Docker login + - name: Login to DockerHub run: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + - name: Login to GitHub Container Registry + # v2.2.0 + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push run: bash .ci-scripts/release/build-docker-images-on-release.bash