Skip to content

Commit

Permalink
Merge pull request #5668 from dependabot/jakecoffman/fork-docker-images
Browse files Browse the repository at this point in the history
deploy from a fork using a workflow
  • Loading branch information
jakecoffman authored Sep 12, 2022
2 parents 6d5cdd5 + e60fa8e commit 86fe960
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions .github/workflows/docker-fork-releases.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Push docker fork images
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_IMAGE: "ubuntu:20.04"
UPDATER_IMAGE: "dependabot/updater"
UPDATER_IMAGE_MIRROR: "ghcr.io/dependabot/dependabot-updater"
on:
workflow_dispatch:
inputs:
pr:
required: true
type: string
description: PR number

jobs:
push-fork-image:
name: Build and push fork image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
env:
TAG: ${{ github.sha }}
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Check if pull request is approved
# The PR must be approved. This is mostly to ensure you've typed the correct PR.
# Note: forks will have a blank review decision without approval. Not NEEDS_REVIEW.
run: |
DECISION=$(gh pr view ${{ github.event.inputs.pr }} --json reviewDecision -t {{.reviewDecision}})
echo "Review decision is: $DECISION"
[[ $DECISION == "APPROVED" ]] || exit 1
- name: Checkout the fork
# This checks out the fork and cherry-picks the changes onto main, creating a new merge SHA tag.
run: |
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
gh pr checkout ${{ github.event.inputs.pr }} --branch docker-branch-release-workflow
git reset main
git add .
git commit -m squashed
PICK=$(git rev-parse HEAD)
git checkout main
git cherry-pick $PICK
echo "TAG=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Build dependabot-core image
env:
DOCKER_BUILDKIT: 1
run: |
docker build \
-t "dependabot/dependabot-core:$TAG" \
--build-arg BUILDKIT_INLINE_CACHE=1 \
--cache-from ghcr.io/dependabot/dependabot-core \
.
- name: Build dependabot-updater image
env:
DOCKER_BUILDKIT: 1
run: |
docker build \
-t "$UPDATER_IMAGE:$TAG" \
--build-arg BUILDKIT_INLINE_CACHE=1 \
--cache-from "$BASE_IMAGE" \
--cache-from "$UPDATER_IMAGE_MIRROR" \
--build-arg OMNIBUS_VERSION=$TAG \
-f Dockerfile.updater \
.
- name: Log in to GHCR
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Push fork image
run: |
docker tag "$UPDATER_IMAGE:$TAG" "$UPDATER_IMAGE_MIRROR:$TAG"
docker push "$UPDATER_IMAGE_MIRROR:$TAG"
- name: Set summary
run: |
echo "generated for PR ${{ github.event.inputs.pr }}" > $GITHUB_STEP_SUMMARY
echo "updater uploaded with tag \`$TAG\`" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "$UPDATER_IMAGE_MIRROR:$TAG" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

0 comments on commit 86fe960

Please sign in to comment.