summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/docker-publish.yml59
1 files changed, 14 insertions, 45 deletions
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index 646d275..1e19120 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -1,18 +1,14 @@
-name: Docker
-
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
+name: Publish Docker Image
on:
push:
- tags: [ "*" ]
+ tags:
+ - '*'
pull_request:
- branches: [ "main" ]
+ branches:
+ - 'main'
env:
- # github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
@@ -23,72 +19,45 @@ jobs:
permissions:
contents: read
packages: write
- # This is used to complete the identity challenge
- # with sigstore/fulcio when running outside of PRs.
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- # Install the cosign tool except on PR
- # https://github.com/sigstore/cosign-installer
- name: Install cosign
if: github.event_name != 'pull_request'
- uses: sigstore/cosign-installer@f3c664df7af409cb4873aa5068053ba9d61a57b6 #v2.6.0
- with:
- cosign-release: 'v1.11.0'
+ uses: sigstore/cosign-installer@main
-
- # Workaround: https://github.com/docker/build-push-action/issues/461
- name: Setup Docker buildx
- uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf
+ uses: docker/setup-buildx-action@v2
- # Login against a Docker registry except on PR
- # https://github.com/docker/login-action
- - name: Log into registry ${{ env.REGISTRY }}
+ - name: Log into docker hub
if: github.event_name != 'pull_request'
- uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c
+ uses: docker/login-action@v2
with:
- registry: ${{ env.REGISTRY }}
- username: ${{ github.actor }}
+ username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- # Extract metadata (tags, labels) for Docker
- # https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
- uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
+ uses: docker/metadata-action@v4
with:
- images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
-
- - name: Get current tag
- id: get-current-tag
- uses: zingimmick/github-action-get-current-tag@v1
+ images: ${{ env.IMAGE_NAME }}
- # Build and push Docker image with Buildx (don't push on PR)
- # https://github.com/docker/build-push-action
- name: Build and push Docker image
id: build-and-push
- uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
+ uses: docker/build-push-action@v3
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
- tags: getchoo/packwiz-serve:latest, getchoo/packwiz-serve:${{ steps.get-current-tag.outputs.tag }}
+ tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
-
- # Sign the resulting Docker image digest except on PRs.
- # This will only write to the public Rekor transparency log when the Docker
- # repository is public to avoid leaking data. If you would like to publish
- # transparency data even for private images, pass --force to cosign below.
- # https://github.com/sigstore/cosign
- name: Sign the published Docker image
if: ${{ github.event_name != 'pull_request' }}
env:
COSIGN_EXPERIMENTAL: "true"
- # This step uses the identity token to provision an ephemeral certificate
- # against the sigstore community Fulcio instance.
run: echo "${{ steps.meta.outputs.tags }}" | xargs -I {} cosign sign {}@${{ steps.build-and-push.outputs.digest }}