From e55708588b479ad87597fbcb63dc9d977afb516d Mon Sep 17 00:00:00 2001 From: Bassem Dghaidi <568794+Link-@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:12:53 +0100 Subject: [PATCH] Add gha-runner-scale-set-controller canary build (#2405) --- .github/workflows/publish-canary.yaml | 77 ++++++++++++++++++++++----- 1 file changed, 64 insertions(+), 13 deletions(-) diff --git a/.github/workflows/publish-canary.yaml b/.github/workflows/publish-canary.yaml index 39390307..d84e78e1 100644 --- a/.github/workflows/publish-canary.yaml +++ b/.github/workflows/publish-canary.yaml @@ -8,35 +8,47 @@ on: - master paths-ignore: - '**.md' + - '.github/actions/**' - '.github/ISSUE_TEMPLATE/**' - - '.github/workflows/validate-chart.yaml' - - '.github/workflows/publish-chart.yaml' + - '.github/workflows/e2e-test-dispatch-workflow.yaml' + - '.github/workflows/e2e-test-linux-vm.yaml' - '.github/workflows/publish-arc.yaml' - - '.github/workflows/runners.yaml' - - '.github/workflows/validate-entrypoint.yaml' - - '.github/renovate.*' + - '.github/workflows/publish-chart.yaml' + - '.github/workflows/publish-runner-scale-set.yaml' + - '.github/workflows/release-runners.yaml' + - '.github/workflows/run-codeql.yaml' + - '.github/workflows/run-first-interaction.yaml' + - '.github/workflows/run-stale.yaml' + - '.github/workflows/update-runners.yaml' + - '.github/workflows/validate-arc.yaml' + - '.github/workflows/validate-chart.yaml' + - '.github/workflows/validate-gha-chart.yaml' + - '.github/workflows/validate-runners.yaml' + - '.github/dependabot.yml' + - '.github/RELEASE_NOTE_TEMPLATE.md' - 'runner/**' - '.gitignore' - 'PROJECT' - 'LICENSE' - 'Makefile' -env: - # Safeguard to prevent pushing images to registeries after build - PUSH_TO_REGISTRIES: true - TARGET_ORG: actions-runner-controller - TARGET_REPO: actions-runner-controller - # https://docs.github.com/en/rest/overview/permissions-required-for-github-apps permissions: contents: read + packages: write + +env: + # Safeguard to prevent pushing images to registeries after build + PUSH_TO_REGISTRIES: true jobs: - canary-build: - name: Build and Publish Canary Image + legacy-canary-build: + name: Build and Publish Legacy Canary Image runs-on: ubuntu-latest env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + TARGET_ORG: actions-runner-controller + TARGET_REPO: actions-runner-controller steps: - name: Checkout uses: actions/checkout@v3 @@ -68,3 +80,42 @@ jobs: echo "" >> $GITHUB_STEP_SUMMARY echo "**Status:**" >> $GITHUB_STEP_SUMMARY echo "[https://github.com/actions-runner-controller/releases/actions/workflows/publish-canary.yaml](https://github.com/actions-runner-controller/releases/actions/workflows/publish-canary.yaml)" >> $GITHUB_STEP_SUMMARY + + canary-build: + name: Build and Publish gha-runner-scale-set-controller Canary Image + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # Normalization is needed because upper case characters are not allowed in the repository name + # and the short sha is needed for image tagging + - name: Resolve parameters + id: resolve_parameters + run: | + echo "INFO: Resolving short sha" + echo "short_sha=$(git rev-parse --short ${{ github.ref }})" >> $GITHUB_OUTPUT + echo "INFO: Normalizing repository name (lowercase)" + echo "repository_owner=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT + + # Unstable builds - run at your own risk + - name: Build and Push + uses: docker/build-push-action@v3 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64,linux/arm64 + build-args: VERSION=canary-"${{ github.ref }}" + push: ${{ env.PUSH_TO_REGISTRIES }} + tags: | + ghcr.io/${{ steps.resolve_parameters.outputs.repository_owner }}/gha-runner-scale-set-controller:canary + ghcr.io/${{ steps.resolve_parameters.outputs.repository_owner }}/gha-runner-scale-set-controller:canary-"${{ steps.resolve_parameters.outputs.short_sha }}" + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file