From 1d3fd04cee9641cf0f57e30303cd211825a13471 Mon Sep 17 00:00:00 2001 From: Divyanshu Agrawal Date: Mon, 4 Oct 2021 18:42:43 +0530 Subject: [PATCH] Document and add GHCR example (#49) * Document and add GHCR example Signed-off-by: divyansh42 --- .github/workflows/ghcr-push.yaml | 65 +++++++++++++++++++ .../{verify-push.yaml => quay-push.yaml} | 11 ++-- README.md | 8 ++- 3 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/ghcr-push.yaml rename .github/workflows/{verify-push.yaml => quay-push.yaml} (93%) diff --git a/.github/workflows/ghcr-push.yaml b/.github/workflows/ghcr-push.yaml new file mode 100644 index 0000000..40160f2 --- /dev/null +++ b/.github/workflows/ghcr-push.yaml @@ -0,0 +1,65 @@ +# This workflow will perform a test whenever there +# is some change in code done to ensure that the changes +# are not buggy and we are getting the desired output. +name: Push to GHCR +on: + push: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' # every day at midnight +env: + IMAGE_NAME: ptr-test + IMAGE_TAGS: v1 ${{ github.sha }} + IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} + REGISTRY_USER: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ github.token }} + +jobs: + push-ghcr: + name: Build and push image + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + install_latest: [ true, false ] + + steps: + # Checkout push-to-registry action github repository + - name: Checkout Push to Registry action + uses: actions/checkout@v2 + + - name: Install latest podman + if: matrix.install_latest + run: | + bash .github/install_latest_podman.sh + + # Build image using Buildah action + - name: Build Image + id: build_image + uses: redhat-actions/buildah-build@v2 + with: + image: ${{ env.IMAGE_NAME }} + tags: ${{ env.IMAGE_TAGS }} + base-image: busybox:latest + entrypoint: | + bash + -c + echo 'hello world' + oci: true + + # Push the image to GHCR (Image Registry) + - name: Push To GHCR + uses: ./ + id: push + with: + image: ${{ steps.build_image.outputs.image }} + tags: ${{ steps.build_image.outputs.tags }} + registry: ${{ env.IMAGE_REGISTRY }} + username: ${{ env.REGISTRY_USER }} + password: ${{ env.REGISTRY_PASSWORD }} + extra-args: | + --disable-content-trust + + - name: Echo outputs + run: | + echo "${{ toJSON(steps.push.outputs) }}" diff --git a/.github/workflows/verify-push.yaml b/.github/workflows/quay-push.yaml similarity index 93% rename from .github/workflows/verify-push.yaml rename to .github/workflows/quay-push.yaml index 72cc4c5..e8324b1 100644 --- a/.github/workflows/verify-push.yaml +++ b/.github/workflows/quay-push.yaml @@ -1,7 +1,7 @@ # This workflow will perform a test whenever there # is some change in code done to ensure that the changes # are not buggy and we are getting the desired output. -name: Build and Push +name: Push to Quay.io on: push: workflow_dispatch: @@ -9,15 +9,14 @@ on: - cron: '0 0 * * *' # every day at midnight env: - IMAGE_REGISTRY: quay.io - IMAGE_NAMESPACE: redhat-github-actions IMAGE_NAME: ptr-test IMAGE_TAGS: v1 ${{ github.sha }} - MVN_REPO_DIR: ~/.m2/repository + IMAGE_REGISTRY: quay.io + IMAGE_NAMESPACE: redhat-github-actions jobs: - build-and-push: - name: Build and push image to Quay.io + push-quay: + name: Build and push image runs-on: ubuntu-20.04 strategy: fail-fast: false diff --git a/README.md b/README.md index 96371b7..bc5da29 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # push-to-registry [![CI checks](https://github.com/redhat-actions/push-to-registry/workflows/CI%20checks/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions?query=workflow%3A%22CI+checks%22) -[![Build and Push](https://github.com/redhat-actions/push-to-registry/workflows/Build%20and%20Push/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions?query=workflow%3A%22Build+and+Push%22) +[![Link checker](https://github.com/redhat-actions/push-to-registry/workflows/Link%20checker/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions?query=workflow%3A%22Link+checker%22) +

+[![Push to Quay.io](https://github.com/redhat-actions/push-to-registry/actions/workflows/quay-push.yaml/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions/workflows/quay-push.yaml) +[![Push to GHCR](https://github.com/redhat-actions/push-to-registry/actions/workflows/ghcr-push.yaml/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions/workflows/ghcr-push.yaml) [![Login and Push](https://github.com/redhat-actions/push-to-registry/workflows/Login%20and%20Push/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions?query=workflow%3A%22Login+and+Push%22) [![Multiple container CLI build tests](https://github.com/redhat-actions/push-to-registry/workflows/Multiple%20container%20CLI%20build%20tests/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions?query=workflow%3A%22Multiple+container+CLI+build+tests%22) -[![Link checker](https://github.com/redhat-actions/push-to-registry/workflows/Link%20checker/badge.svg)](https://github.com/redhat-actions/push-to-registry/actions?query=workflow%3A%22Link+checker%22)

[![tag badge](https://img.shields.io/github/v/tag/redhat-actions/push-to-registry)](https://github.com/redhat-actions/push-to-registry/tags) [![license badge](https://img.shields.io/github/license/redhat-actions/push-to-registry)](./LICENSE) @@ -94,6 +96,8 @@ jobs: run: echo "Image pushed to ${{ steps.push-to-quay.outputs.registry-paths }}" ``` +Refer to [GHCR push example](./.github/workflows/ghcr-push.yaml) for complete example of push to [GitHub Container Registry (GHCR)](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry). + ## Note about images built with Docker This action uses `Podman` to push, but can also push images built with `Docker`. However, Docker and Podman store their images in different locations, and Podman can only push images in its own storage.