From 231cde1531847b22443c6a311cfc6dd98900047f Mon Sep 17 00:00:00 2001 From: Jesse Newland Date: Tue, 13 Oct 2020 07:14:36 -0500 Subject: [PATCH] Update build-runner workflow to be compatible with forks, fix image push (#117) Partly revert and enhances #115 This is a follow-up to #115 that replaces the hardcoded `summerwind` portion of the image name with `${{ github.repository_owner }}` to enable contributors to test the image pushing behavior and fixes image building by conditionally passing `--push` to the build step based on the event that triggered the workflow. After setting the `DOCKER_ACCESS_TOKEN` Secret on my fork of this repository, I was able to use this updated workflow to [build and push](https://github.com/urcomputeringpal/actions-runner-controller/runs/1242793758?check_suite_focus=true) a [set of images](https://hub.docker.com/r/urcomputeringpal/actions-runner/tags) and confirm their functionality. I imagine this will be useful to future contributors who wish to help with the chore of keeping up with https://github.com/actions/runner/releases. --- .github/workflows/build-runner.yml | 27 ++++++++++++++++++++------- .github/workflows/release.yml | 4 ++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-runner.yml b/.github/workflows/build-runner.yml index 869d92b0f5..edac5ca6da 100644 --- a/.github/workflows/build-runner.yml +++ b/.github/workflows/build-runner.yml @@ -21,6 +21,7 @@ jobs: env: RUNNER_VERSION: 2.273.5 DOCKER_VERSION: 19.03.12 + DOCKERHUB_USERNAME: ${{ github.repository_owner }} steps: - name: Checkout uses: actions/checkout@v2 @@ -33,19 +34,31 @@ jobs: - name: Build Container Image working-directory: runner + if: ${{ github.event_name == 'pull_request' }} run: | docker buildx build \ --build-arg RUNNER_VERSION=${RUNNER_VERSION} \ --build-arg DOCKER_VERSION=${DOCKER_VERSION} \ --platform linux/amd64,linux/arm64 \ - --tag summerwind/actions-runner:v${RUNNER_VERSION} \ + --tag ${DOCKERHUB_USERNAME}/actions-runner:v${RUNNER_VERSION} \ + --tag ${DOCKERHUB_USERNAME}/actions-runner:latest \ -f Dockerfile . - - name: Push Container Image + - name: Login to GitHub Docker Registry + run: echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin + if: ${{ github.event_name == 'push' }} + env: + DOCKERHUB_USERNAME: ${{ github.repository_owner }} + DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_ACCESS_TOKEN }} + + - name: Build and Push Container Image working-directory: runner - run: | - docker login -u summerwind --password-stdin <<<${{ secrets.DOCKER_ACCESS_TOKEN }} - docker push summerwind/actions-runner:v${RUNNER_VERSION} - docker tag summerwind/actions-runner:v${RUNNER_VERSION} summerwind/actions-runner:latest - docker push summerwind/actions-runner:latest if: ${{ github.event_name == 'push' }} + run: | + docker buildx build \ + --build-arg RUNNER_VERSION=${RUNNER_VERSION} \ + --build-arg DOCKER_VERSION=${DOCKER_VERSION} \ + --platform linux/amd64,linux/arm64 \ + --tag ${DOCKERHUB_USERNAME}/actions-runner:v${RUNNER_VERSION} \ + --tag ${DOCKERHUB_USERNAME}/actions-runner:latest \ + -f Dockerfile . --push \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 413b3e9b72..f57bb5dfca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,12 +38,12 @@ jobs: - name: Login to GitHub Docker Registry run: echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin env: - DOCKERHUB_USERNAME: summerwind + DOCKERHUB_USERNAME: ${{ github.repository_owner }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_ACCESS_TOKEN }} - name: Build Container Image run: | docker buildx build \ --platform linux/amd64,linux/arm64 \ - --tag summerwind/actions-runner-controller:${{ env.VERSION }} \ + --tag ${DOCKERHUB_USERNAME}/actions-runner-controller:${{ env.VERSION }} \ -f Dockerfile . --push