ci: align pipeline files and setups (#1484)

* ci: align pipeline files and setups

* ci: more changes

* ci: various changes

* ci: fix setup-helm action ref

* ci: better pipeline name

* ci: more format aligning

* ci: more format aligning

* ci: better job name

* ci: supports multiple languages

* ci: better pipeline and job names

* ci: do a verb-noun thing for consistency

* ci: use 'arc' when talking holistically

* ci: add caching scope

* ci:  put canary in a scope

* ci: fix syntax error

* ci: better pipeline and job names

* ci: better job name

Co-authored-by: toast-gear <toast-gear@users.noreply.github.com>
This commit is contained in:
Callum Tait 2022-06-08 02:04:14 +01:00 committed by GitHub
parent 01c8dc237e
commit 0cd13fe51d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 168 additions and 151 deletions

View File

@ -13,7 +13,7 @@
{ {
// use https://github.com/actions/runner/releases // use https://github.com/actions/runner/releases
"fileMatch": [ "fileMatch": [
".github/workflows/runners.yml" ".github/workflows/runners.yaml"
], ],
"matchStrings": ["RUNNER_VERSION: +(?<currentValue>.*?)\\n"], "matchStrings": ["RUNNER_VERSION: +(?<currentValue>.*?)\\n"],
"depNameTemplate": "actions/runner", "depNameTemplate": "actions/runner",

View File

@ -1,24 +1,21 @@
name: Publish Controller Image name: Publish ARC
on: on:
release: release:
types: [published] types:
- published
jobs: jobs:
build: release-controller:
runs-on: ubuntu-latest
name: Release name: Release
runs-on: ubuntu-latest
env: env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USER }} DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USER }}
steps: steps:
- name: Set outputs
id: vars
run: echo ::set-output name=sha_short::${GITHUB_SHA::7}
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
- uses: actions/setup-go@193b404f8a1d1dccaf6ed9bf03cdb68d2d02020f - uses: actions/setup-go@v3
with: with:
go-version: '1.18.2' go-version: '1.18.2'
@ -39,25 +36,20 @@ jobs:
- name: Upload artifacts - name: Upload artifacts
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: make github-release run: |
make github-release
- name: Set up QEMU - name: Setup Docker Environment
uses: docker/setup-qemu-action@0522dcd2bf084920c411162fde334a308be75015 id: vars
uses: ./.github/actions/setup-docker-environment
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@91cb32d715c128e5f0ede915cd7e196ab7799b83
with: with:
version: latest username: ${{ env.DOCKERHUB_USERNAME }}
- name: Login to DockerHub
uses: docker/login-action@d398f07826957cd0a18ea1b059cf1207835e60bc
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }} password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
ghcr_username: ${{ github.actor }}
ghcr_password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push - name: Build and Push
uses: docker/build-push-action@c5e6528d5ddefc82f682165021e05edf58044bce uses: docker/build-push-action@v3
with: with:
file: Dockerfile file: Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
@ -66,4 +58,6 @@ jobs:
${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:latest ${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:latest
${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:${{ env.VERSION }} ${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:${{ env.VERSION }}
${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:${{ env.VERSION }}-${{ steps.vars.outputs.sha_short }} ${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:${{ env.VERSION }}-${{ steps.vars.outputs.sha_short }}
cache-from: type=gha
cache-to: type=gha,mode=max

55
.github/workflows/publish-canary.yaml vendored Normal file
View File

@ -0,0 +1,55 @@
name: Publish Canary Image
on:
push:
branches:
- master
paths-ignore:
- '**.md'
- '.github/ISSUE_TEMPLATE/**'
- '.github/workflows/validate-chart.yaml'
- '.github/workflows/publish-chart.yaml'
- '.github/workflows/publish-arc.yaml'
- '.github/workflows/runners.yaml'
- '.github/workflows/validate-entrypoint.yaml'
- '.github/renovate.*'
- 'runner/**'
- '.gitignore'
- 'PROJECT'
- 'LICENSE'
- 'Makefile'
permissions:
contents: read
jobs:
canary-build:
name: Build and Publish Canary Image
runs-on: ubuntu-latest
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USER }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Docker Environment
id: vars
uses: ./.github/actions/setup-docker-environment
with:
username: ${{ env.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
ghcr_username: ${{ github.actor }}
ghcr_password: ${{ secrets.GITHUB_TOKEN }}
# Considered unstable builds
# See Issue #285, PR #286, and PR #323 for more information
- name: Build and Push
uses: docker/build-push-action@v3
with:
file: Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:canary
cache-from: type=gha,scope=arc-canary
cache-to: type=gha,mode=max,scope=arc-canary

View File

@ -1,4 +1,4 @@
name: Publish helm chart name: Publish Helm Chart
on: on:
push: push:
@ -6,7 +6,7 @@ on:
- master - master
paths: paths:
- 'charts/**' - 'charts/**'
- '.github/workflows/on-push-master-publish-chart.yml' - '.github/workflows/publish-chart.yaml'
- '!charts/actions-runner-controller/docs/**' - '!charts/actions-runner-controller/docs/**'
- '!**.md' - '!**.md'
workflow_dispatch: workflow_dispatch:
@ -20,18 +20,18 @@ permissions:
jobs: jobs:
lint-chart: lint-chart:
runs-on: ubuntu-latest
name: Lint Chart name: Lint Chart
runs-on: ubuntu-latest
outputs: outputs:
publish-chart: ${{ steps.publish-chart-step.outputs.publish }} publish-chart: ${{ steps.publish-chart-step.outputs.publish }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Set up Helm - name: Set up Helm
uses: azure/setup-helm@217bf70cbd2e930ba2e81ba7e1de2f7faecc42ba uses: azure/setup-helm@v2.1
with: with:
version: ${{ env.HELM_VERSION }} version: ${{ env.HELM_VERSION }}
@ -52,12 +52,12 @@ jobs:
--enable-optional-test container-security-context-readonlyrootfilesystem --enable-optional-test container-security-context-readonlyrootfilesystem
# python is a requirement for the chart-testing action below (supports yamllint among other tests) # python is a requirement for the chart-testing action below (supports yamllint among other tests)
- uses: actions/setup-python@fff15a21cc8b16191cb1249f621fa3a55b9005b8 - uses: actions/setup-python@v3
with: with:
python-version: 3.7 python-version: '3.7'
- name: Set up chart-testing - name: Set up chart-testing
uses: helm/chart-testing-action@62a185010be4cb08459f7acb19f37927235d5cf3 uses: helm/chart-testing-action@v2.2.1
- name: Run chart-testing (list-changed) - name: Run chart-testing (list-changed)
id: list-changed id: list-changed
@ -68,22 +68,23 @@ jobs:
fi fi
- name: Run chart-testing (lint) - name: Run chart-testing (lint)
run: ct lint --config charts/.ci/ct-config.yaml run: |
ct lint --config charts/.ci/ct-config.yaml
- name: Create kind cluster - name: Create kind cluster
uses: helm/kind-action@94729529f85113b88f4f819c17ce61382e6d8478
if: steps.list-changed.outputs.changed == 'true' if: steps.list-changed.outputs.changed == 'true'
uses: helm/kind-action@v1.2.0
# We need cert-manager already installed in the cluster because we assume the CRDs exist # We need cert-manager already installed in the cluster because we assume the CRDs exist
- name: Install cert-manager - name: Install cert-manager
if: steps.list-changed.outputs.changed == 'true'
run: | run: |
helm repo add jetstack https://charts.jetstack.io --force-update helm repo add jetstack https://charts.jetstack.io --force-update
helm install cert-manager jetstack/cert-manager --set installCRDs=true --wait helm install cert-manager jetstack/cert-manager --set installCRDs=true --wait
if: steps.list-changed.outputs.changed == 'true'
- name: Run chart-testing (install) - name: Run chart-testing (install)
run: ct install --config charts/.ci/ct-config.yaml
if: steps.list-changed.outputs.changed == 'true' if: steps.list-changed.outputs.changed == 'true'
run: ct install --config charts/.ci/ct-config.yaml
# WARNING: This relies on the latest release being inat the top of the JSON from GitHub and a clean chart.yaml # WARNING: This relies on the latest release being inat the top of the JSON from GitHub and a clean chart.yaml
- name: Check if Chart Publish is Needed - name: Check if Chart Publish is Needed
@ -100,16 +101,17 @@ jobs:
fi fi
publish-chart: publish-chart:
permissions:
contents: write # for helm/chart-releaser-action to push chart release and create a release
if: needs.lint-chart.outputs.publish-chart == 'true' if: needs.lint-chart.outputs.publish-chart == 'true'
needs: lint-chart needs: lint-chart
runs-on: ubuntu-latest
name: Publish Chart name: Publish Chart
runs-on: ubuntu-latest
permissions:
contents: write # for helm/chart-releaser-action to push chart release and create a release
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
@ -119,7 +121,7 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com" git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser - name: Run chart-releaser
uses: helm/chart-releaser-action@a3454e46a6f5ac4811069a381e646961dda2e1bf uses: helm/chart-releaser-action@v1.4.0
env: env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

View File

@ -1,26 +1,32 @@
name: "Code Scanning" name: Run CodeQL
on: on:
push: push:
branches: [master] branches:
- master
pull_request: pull_request:
branches: [master] branches:
- master
schedule: schedule:
- cron: '30 1 * * 0' - cron: '30 1 * * 0'
jobs: jobs:
CodeQL-Build: analyze:
name: Analyze
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
security-events: write security-events: write
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3.0.2 uses: actions/checkout@v3
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v2.1.11 uses: github/codeql-action/init@v2
with: with:
languages: go languages: go
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v2.1.11 uses: github/codeql-action/autobuild@v2
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2.1.11 uses: github/codeql-action/analyze@v2

View File

@ -1,7 +1,6 @@
name: 'Close stale issues and PRs' name: Run Stale Bot
on: on:
schedule: schedule:
# 01:30 every day
- cron: '30 1 * * *' - cron: '30 1 * * *'
permissions: permissions:
@ -9,12 +8,13 @@ permissions:
jobs: jobs:
stale: stale:
permissions: name: Run Stale
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
steps: steps:
- uses: actions/stale@65d24b70926a596b0f0098d7e1eb572175d73bc1 - uses: actions/stale@v5
with: with:
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.' stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
# turn off stale for both issues and PRs # turn off stale for both issues and PRs

View File

@ -12,21 +12,21 @@ on:
paths: paths:
- 'runner/**' - 'runner/**'
- '!runner/Makefile' - '!runner/Makefile'
- .github/workflows/runners.yml - '.github/workflows/runners.yaml'
- '!**.md' - '!**.md'
env: env:
RUNNER_VERSION: 2.292.0 RUNNER_VERSION: 2.292.0
DOCKER_VERSION: 20.10.12 DOCKER_VERSION: 20.10.12
DOCKERHUB_USERNAME: summerwind DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USER }}
jobs: jobs:
build: build-runners:
name: Build ${{ matrix.name }}-${{ matrix.os-name }}-${{ matrix.os-version }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
packages: write packages: write
contents: read contents: read
name: Build ${{ matrix.name }}-${{ matrix.os-name }}-${{ matrix.os-version }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -40,7 +40,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
- name: Setup Docker Environment - name: Setup Docker Environment
id: vars id: vars
@ -52,7 +52,7 @@ jobs:
ghcr_password: ${{ secrets.GITHUB_TOKEN }} ghcr_password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Versioned Tags - name: Build and Push Versioned Tags
uses: docker/build-push-action@c5e6528d5ddefc82f682165021e05edf58044bce uses: docker/build-push-action@v3
with: with:
context: ./runner context: ./runner
file: ./runner/${{ matrix.name }}.dockerfile file: ./runner/${{ matrix.name }}.dockerfile
@ -68,5 +68,5 @@ jobs:
ghcr.io/${{ github.repository }}/${{ matrix.name }}:latest ghcr.io/${{ github.repository }}/${{ matrix.name }}:latest
ghcr.io/${{ github.repository }}/${{ matrix.name }}:v${{ env.RUNNER_VERSION }}-${{ matrix.os-name }}-${{ matrix.os-version }} ghcr.io/${{ github.repository }}/${{ matrix.name }}:v${{ env.RUNNER_VERSION }}-${{ matrix.os-name }}-${{ matrix.os-version }}
ghcr.io/${{ github.repository }}/${{ matrix.name }}:v${{ env.RUNNER_VERSION }}-${{ matrix.os-name }}-${{ matrix.os-version }}-${{ steps.vars.outputs.sha_short }} ghcr.io/${{ github.repository }}/${{ matrix.name }}:v${{ env.RUNNER_VERSION }}-${{ matrix.os-name }}-${{ matrix.os-version }}-${{ steps.vars.outputs.sha_short }}
cache-from: type=gha cache-from: type=gha,scope=build-${{ matrix.name }}
cache-to: type=gha,mode=max cache-to: type=gha,mode=max,scope=build-${{ matrix.name }}

View File

@ -1,48 +1,59 @@
name: CI name: Validate ARC
on: on:
pull_request: pull_request:
branches: branches:
- master - master
paths-ignore: paths-ignore:
- .github/workflows/runners.yml
- .github/workflows/on-push-lint-charts.yml
- .github/workflows/on-push-master-publish-chart.yml
- .github/workflows/release.yml
- .github/workflows/test-entrypoint.yml
- .github/workflows/wip.yml
- 'runner/**'
- '**.md' - '**.md'
- '.github/ISSUE_TEMPLATE/**'
- '.github/workflows/publish-canary.yaml'
- '.github/workflows/validate-chart.yaml'
- '.github/workflows/publish-chart.yaml'
- '.github/workflows/runners.yaml'
- '.github/workflows/publish-arc.yaml'
- '.github/workflows/validate-entrypoint.yaml'
- '.github/renovate.*'
- 'runner/**'
- '.gitignore' - '.gitignore'
- 'PROJECT'
- 'LICENSE'
- 'Makefile'
permissions: permissions:
contents: read contents: read
jobs: jobs:
test: test-controller:
name: Test ARC
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Test
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
- uses: actions/setup-go@193b404f8a1d1dccaf6ed9bf03cdb68d2d02020f
- name: Set-up Go
uses: actions/setup-go@v3
with: with:
go-version: '1.18.2' go-version: '1.18.2'
check-latest: false check-latest: false
- run: go version
- uses: actions/cache@95f200e41cfa87b8e07f30196c0df17a67e67786 - uses: actions/cache@v3
with: with:
path: ~/go/pkg/mod path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: | restore-keys: |
${{ runner.os }}-go- ${{ runner.os }}-go-
- name: Install kubebuilder - name: Install kubebuilder
run: | run: |
curl -L -O https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_linux_amd64.tar.gz curl -L -O https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_linux_amd64.tar.gz
tar zxvf kubebuilder_2.3.2_linux_amd64.tar.gz tar zxvf kubebuilder_2.3.2_linux_amd64.tar.gz
sudo mv kubebuilder_2.3.2_linux_amd64 /usr/local/kubebuilder sudo mv kubebuilder_2.3.2_linux_amd64 /usr/local/kubebuilder
- name: Run tests - name: Run tests
run: make test run: |
make test
- name: Verify manifests are up-to-date - name: Verify manifests are up-to-date
run: | run: |
make manifests make manifests

View File

@ -1,10 +1,10 @@
name: Lint and Test Charts name: Validate Helm Chart
on: on:
push: push:
paths: paths:
- 'charts/**' - 'charts/**'
- '.github/workflows/on-push-lint-charts.yml' - '.github/workflows/validate-chart.yaml'
- '!charts/actions-runner-controller/docs/**' - '!charts/actions-runner-controller/docs/**'
- '!**.md' - '!**.md'
workflow_dispatch: workflow_dispatch:
@ -16,17 +16,17 @@ permissions:
contents: read contents: read
jobs: jobs:
lint-test: validate-chart:
runs-on: ubuntu-latest
name: Lint Chart name: Lint Chart
runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Set up Helm - name: Set up Helm
uses: azure/setup-helm@217bf70cbd2e930ba2e81ba7e1de2f7faecc42ba uses: azure/setup-helm@v2.1
with: with:
version: ${{ env.HELM_VERSION }} version: ${{ env.HELM_VERSION }}
@ -47,12 +47,12 @@ jobs:
--enable-optional-test container-security-context-readonlyrootfilesystem --enable-optional-test container-security-context-readonlyrootfilesystem
# python is a requirement for the chart-testing action below (supports yamllint among other tests) # python is a requirement for the chart-testing action below (supports yamllint among other tests)
- uses: actions/setup-python@fff15a21cc8b16191cb1249f621fa3a55b9005b8 - uses: actions/setup-python@v3
with: with:
python-version: 3.7 python-version: '3.7'
- name: Set up chart-testing - name: Set up chart-testing
uses: helm/chart-testing-action@62a185010be4cb08459f7acb19f37927235d5cf3 uses: helm/chart-testing-action@v2.2.1
- name: Run chart-testing (list-changed) - name: Run chart-testing (list-changed)
id: list-changed id: list-changed
@ -63,18 +63,20 @@ jobs:
fi fi
- name: Run chart-testing (lint) - name: Run chart-testing (lint)
run: ct lint --config charts/.ci/ct-config.yaml run: |
ct lint --config charts/.ci/ct-config.yaml
- name: Create kind cluster - name: Create kind cluster
uses: helm/kind-action@94729529f85113b88f4f819c17ce61382e6d8478 uses: helm/kind-action@v1.2.0
if: steps.list-changed.outputs.changed == 'true' if: steps.list-changed.outputs.changed == 'true'
# We need cert-manager already installed in the cluster because we assume the CRDs exist # We need cert-manager already installed in the cluster because we assume the CRDs exist
- name: Install cert-manager - name: Install cert-manager
if: steps.list-changed.outputs.changed == 'true'
run: | run: |
helm repo add jetstack https://charts.jetstack.io --force-update helm repo add jetstack https://charts.jetstack.io --force-update
helm install cert-manager jetstack/cert-manager --set installCRDs=true --wait helm install cert-manager jetstack/cert-manager --set installCRDs=true --wait
if: steps.list-changed.outputs.changed == 'true'
- name: Run chart-testing (install) - name: Run chart-testing (install)
run: ct install --config charts/.ci/ct-config.yaml run: |
ct install --config charts/.ci/ct-config.yaml

View File

@ -1,4 +1,4 @@
name: Unit tests for entrypoint name: Validate Runners
on: on:
pull_request: pull_request:
@ -13,12 +13,13 @@ permissions:
contents: read contents: read
jobs: jobs:
test: test-runner-entrypoint:
runs-on: ubuntu-latest
name: Test entrypoint name: Test entrypoint
runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b uses: actions/checkout@v3
- name: Run unit tests for entrypoint.sh
- name: Run tests
run: | run: |
make acceptance/runner/entrypoint make acceptance/runner/entrypoint

View File

@ -1,54 +0,0 @@
name: Publish Canary Image
on:
push:
branches:
- master
paths-ignore:
- .github/workflows/runners.yml
- .github/workflows/on-push-lint-charts.yml
- .github/workflows/on-push-master-publish-chart.yml
- .github/workflows/release.yml
- .github/workflows/test-entrypoint.yml
- "runner/**"
- "**.md"
- ".gitignore"
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
name: Build and Publish Canary Image
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USER }}
steps:
- name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- name: Set up QEMU
uses: docker/setup-qemu-action@0522dcd2bf084920c411162fde334a308be75015
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@91cb32d715c128e5f0ede915cd7e196ab7799b83
with:
version: latest
- name: Login to DockerHub
uses: docker/login-action@d398f07826957cd0a18ea1b059cf1207835e60bc
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
# Considered unstable builds
# See Issue #285, PR #286, and PR #323 for more information
- name: Build and Push
uses: docker/build-push-action@c5e6528d5ddefc82f682165021e05edf58044bce
with:
file: Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ env.DOCKERHUB_USERNAME }}/actions-runner-controller:canary