diff --git a/.github/workflows/verify-push.yaml b/.github/workflows/verify-push.yaml index 72cc4c5..3499549 100644 --- a/.github/workflows/verify-push.yaml +++ b/.github/workflows/verify-push.yaml @@ -9,16 +9,16 @@ 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 jobs: - build-and-push: + push-quay: name: Build and push image to Quay.io runs-on: ubuntu-20.04 + env: + IMAGE_REGISTRY: quay.io + IMAGE_NAMESPACE: redhat-github-actions strategy: fail-fast: false matrix: @@ -64,3 +64,56 @@ jobs: - name: Echo outputs run: | echo "${{ toJSON(steps.push.outputs) }}" + + push-ghcr: + name: Build and push image to GHCR + runs-on: ubuntu-20.04 + env: + IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} + REGISTRY_USER: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ github.token }} + 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/README.md b/README.md index 96371b7..b5e2381 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,8 @@ jobs: run: echo "Image pushed to ${{ steps.push-to-quay.outputs.registry-paths }}" ``` +Refer to [examples](./.github/workflows/verify-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.