Remove workflows unused in a forked repo
This commit is contained in:
		
							parent
							
								
									c15380c97b
								
							
						
					
					
						commit
						2cda3ec63f
					
				|  | @ -1,212 +0,0 @@ | |||
| name: Publish ARC Helm Charts | ||||
| 
 | ||||
| # Revert to https://github.com/actions-runner-controller/releases#releases | ||||
| # for details on why we use this approach | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|     - master | ||||
|     paths: | ||||
|     - 'charts/**' | ||||
|     - '.github/workflows/arc-publish-chart.yaml' | ||||
|     - '!charts/actions-runner-controller/docs/**' | ||||
|     - '!charts/gha-runner-scale-set-controller/**' | ||||
|     - '!charts/gha-runner-scale-set/**' | ||||
|     - '!**.md' | ||||
|   workflow_dispatch: | ||||
|     inputs: | ||||
|       force: | ||||
|         description: 'Force publish even if the chart version is not bumped' | ||||
|         type: boolean | ||||
|         required: true | ||||
|         default: false | ||||
| 
 | ||||
| env: | ||||
|   KUBE_SCORE_VERSION: 1.10.0 | ||||
|   HELM_VERSION: v3.8.0 | ||||
| 
 | ||||
| permissions: | ||||
|   contents: write | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   lint-chart: | ||||
|     name: Lint Chart | ||||
|     runs-on: ubuntu-latest | ||||
|     outputs: | ||||
|       publish-chart: ${{ steps.publish-chart-step.outputs.publish }} | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v3 | ||||
|       with: | ||||
|         fetch-depth: 0 | ||||
| 
 | ||||
|     - name: Set up Helm | ||||
|       uses: azure/setup-helm@v3.4 | ||||
|       with: | ||||
|         version: ${{ env.HELM_VERSION }} | ||||
| 
 | ||||
|     - name: Set up kube-score | ||||
|       run: | | ||||
|         wget https://github.com/zegl/kube-score/releases/download/v${{ env.KUBE_SCORE_VERSION }}/kube-score_${{ env.KUBE_SCORE_VERSION }}_linux_amd64 -O kube-score | ||||
|         chmod 755 kube-score | ||||
| 
 | ||||
|     - name: Kube-score generated manifests | ||||
|       run: helm template  --values charts/.ci/values-kube-score.yaml charts/* | ./kube-score score - --ignore-test pod-networkpolicy --ignore-test deployment-has-poddisruptionbudget --ignore-test deployment-has-host-podantiaffinity --ignore-test container-security-context --ignore-test pod-probes --ignore-test container-image-tag --enable-optional-test container-security-context-privileged --enable-optional-test container-security-context-readonlyrootfilesystem | ||||
| 
 | ||||
|     # python is a requirement for the chart-testing action below (supports yamllint among other tests) | ||||
|     - uses: actions/setup-python@v4 | ||||
|       with: | ||||
|         python-version: '3.11' | ||||
| 
 | ||||
|     - name: Set up chart-testing | ||||
|       uses: helm/chart-testing-action@v2.6.0 | ||||
| 
 | ||||
|     - name: Run chart-testing (list-changed) | ||||
|       id: list-changed | ||||
|       run: | | ||||
|         changed=$(ct list-changed --config charts/.ci/ct-config.yaml) | ||||
|         if [[ -n "$changed" ]]; then | ||||
|           echo "changed=true" >> $GITHUB_OUTPUT | ||||
|         fi | ||||
| 
 | ||||
|     - name: Run chart-testing (lint) | ||||
|       run: | | ||||
|         ct lint --config charts/.ci/ct-config.yaml | ||||
| 
 | ||||
|     - name: Create kind cluster | ||||
|       if: steps.list-changed.outputs.changed == 'true' | ||||
|       uses: helm/kind-action@v1.4.0 | ||||
| 
 | ||||
|     # We need cert-manager already installed in the cluster because we assume the CRDs exist | ||||
|     - name: Install cert-manager | ||||
|       if: steps.list-changed.outputs.changed == 'true' | ||||
|       run: | | ||||
|         helm repo add jetstack https://charts.jetstack.io --force-update | ||||
|         helm install cert-manager jetstack/cert-manager --set installCRDs=true --wait | ||||
| 
 | ||||
|     - name: Run chart-testing (install) | ||||
|       if: steps.list-changed.outputs.changed == 'true' | ||||
|       run: ct install --config charts/.ci/ct-config.yaml | ||||
| 
 | ||||
|     # WARNING: This relies on the latest release being at the top of the JSON from GitHub and a clean chart.yaml | ||||
|     - name: Check if Chart Publish is Needed | ||||
|       id: publish-chart-step | ||||
|       run: | | ||||
|         CHART_TEXT=$(curl -fs https://raw.githubusercontent.com/${{ github.repository }}/master/charts/actions-runner-controller/Chart.yaml) | ||||
|         NEW_CHART_VERSION=$(echo "$CHART_TEXT" | grep version: | cut -d ' ' -f 2) | ||||
|         RELEASE_LIST=$(curl -fs https://api.github.com/repos/${{ github.repository }}/releases  | jq .[].tag_name | grep actions-runner-controller | cut -d '"' -f 2 | cut -d '-' -f 4) | ||||
|         LATEST_RELEASED_CHART_VERSION=$(echo $RELEASE_LIST | cut -d ' ' -f 1) | ||||
| 
 | ||||
|         echo "CHART_VERSION_IN_MASTER=$NEW_CHART_VERSION" >> $GITHUB_ENV | ||||
|         echo "LATEST_CHART_VERSION=$LATEST_RELEASED_CHART_VERSION" >> $GITHUB_ENV | ||||
| 
 | ||||
|         # Always publish if force is true | ||||
|         if [[ $NEW_CHART_VERSION != $LATEST_RELEASED_CHART_VERSION || "${{ inputs.force }}" == "true" ]]; then | ||||
|           echo "publish=true" >> $GITHUB_OUTPUT | ||||
|         else | ||||
|           echo "publish=false" >> $GITHUB_OUTPUT | ||||
|         fi | ||||
| 
 | ||||
|     - name: Job summary | ||||
|       run: | | ||||
|         echo "Chart linting has been completed." >> $GITHUB_STEP_SUMMARY | ||||
|         echo "" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "**Status:**" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "- chart version in master: ${{ env.CHART_VERSION_IN_MASTER }}" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "- latest chart version: ${{ env.LATEST_CHART_VERSION }}" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "- publish new chart: ${{ steps.publish-chart-step.outputs.publish }}" >> $GITHUB_STEP_SUMMARY | ||||
| 
 | ||||
|   publish-chart: | ||||
|     if: needs.lint-chart.outputs.publish-chart == 'true' | ||||
|     needs: lint-chart | ||||
|     name: Publish Chart | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       contents: write # for helm/chart-releaser-action to push chart release and create a release | ||||
|     env: | ||||
|       CHART_TARGET_ORG: actions-runner-controller | ||||
|       CHART_TARGET_REPO: actions-runner-controller.github.io | ||||
|       CHART_TARGET_BRANCH: master | ||||
| 
 | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v3 | ||||
|       with: | ||||
|         fetch-depth: 0 | ||||
| 
 | ||||
|     - name: Configure Git | ||||
|       run: | | ||||
|         git config user.name "$GITHUB_ACTOR" | ||||
|         git config user.email "$GITHUB_ACTOR@users.noreply.github.com" | ||||
| 
 | ||||
|     - name: Get Token | ||||
|       id: get_workflow_token | ||||
|       uses: peter-murray/workflow-application-token-action@8e1ba3bf1619726336414f1014e37f17fbadf1db | ||||
|       with: | ||||
|         application_id: ${{ secrets.ACTIONS_ACCESS_APP_ID }} | ||||
|         application_private_key: ${{ secrets.ACTIONS_ACCESS_PK }} | ||||
|         organization: ${{ env.CHART_TARGET_ORG }} | ||||
| 
 | ||||
|     - name: Install chart-releaser | ||||
|       uses: helm/chart-releaser-action@v1.4.1 | ||||
|       with: | ||||
|         install_only: true | ||||
|         install_dir: ${{ github.workspace }}/bin | ||||
| 
 | ||||
|     - name: Package and upload release assets | ||||
|       run: | | ||||
|         cr package \ | ||||
|           ${{ github.workspace }}/charts/actions-runner-controller/ \ | ||||
|           --package-path .cr-release-packages | ||||
| 
 | ||||
|         cr upload \ | ||||
|           --owner "$(echo ${{ github.repository }} | cut -d '/' -f 1)" \ | ||||
|           --git-repo "$(echo ${{ github.repository }} | cut -d '/' -f 2)" \ | ||||
|           --package-path .cr-release-packages \ | ||||
|           --token ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|     - name: Generate updated index.yaml | ||||
|       run: | | ||||
|         cr index \ | ||||
|           --owner "$(echo ${{ github.repository }} | cut -d '/' -f 1)" \ | ||||
|           --git-repo "$(echo ${{ github.repository }} | cut -d '/' -f 2)" \ | ||||
|           --index-path ${{ github.workspace }}/index.yaml \ | ||||
|           --token ${{ secrets.GITHUB_TOKEN }} \ | ||||
|           --push \ | ||||
|           --pages-branch 'gh-pages' \ | ||||
|           --pages-index-path 'index.yaml' | ||||
| 
 | ||||
|     # Chart Release was never intended to publish to a different repo | ||||
|     # this workaround is intended to move the index.yaml to the target repo | ||||
|     # where the github pages are hosted | ||||
|     - name: Checkout target repository | ||||
|       uses: actions/checkout@v3 | ||||
|       with: | ||||
|         repository: ${{ env.CHART_TARGET_ORG }}/${{ env.CHART_TARGET_REPO }} | ||||
|         path: ${{ env.CHART_TARGET_REPO }} | ||||
|         ref: ${{ env.CHART_TARGET_BRANCH }} | ||||
|         token: ${{ steps.get_workflow_token.outputs.token }} | ||||
| 
 | ||||
|     - name: Copy index.yaml | ||||
|       run: | | ||||
|         cp ${{ github.workspace }}/index.yaml ${{ env.CHART_TARGET_REPO }}/actions-runner-controller/index.yaml | ||||
| 
 | ||||
|     - name: Commit and push to target repository | ||||
|       run: | | ||||
|         git config user.name "$GITHUB_ACTOR" | ||||
|         git config user.email "$GITHUB_ACTOR@users.noreply.github.com" | ||||
|         git add . | ||||
|         git commit -m "Update index.yaml" | ||||
|         git push | ||||
|       working-directory: ${{ github.workspace }}/${{ env.CHART_TARGET_REPO }} | ||||
| 
 | ||||
|     - name: Job summary | ||||
|       run: | | ||||
|         echo "New helm chart has been published" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "**Status:**" >> $GITHUB_STEP_SUMMARY | ||||
|         echo "- New [index.yaml](https://github.com/${{ env.CHART_TARGET_ORG }}/${{ env.CHART_TARGET_REPO }}/tree/master/actions-runner-controller) pushed" >> $GITHUB_STEP_SUMMARY | ||||
|  | @ -1,109 +0,0 @@ | |||
| name: Publish ARC Image | ||||
| 
 | ||||
| # Revert to https://github.com/actions-runner-controller/releases#releases | ||||
| # for details on why we use this approach | ||||
| on: | ||||
|   release: | ||||
|     types: | ||||
|       - published | ||||
|   workflow_dispatch: | ||||
|     inputs: | ||||
|       release_tag_name: | ||||
|         description: 'Tag name of the release to publish' | ||||
|         required: true | ||||
|       push_to_registries: | ||||
|         description: 'Push images to registries' | ||||
|         required: true | ||||
|         type: boolean | ||||
|         default: false | ||||
| 
 | ||||
| permissions: | ||||
|  contents: write | ||||
|  packages: write | ||||
| 
 | ||||
| env: | ||||
|   TARGET_ORG: actions-runner-controller | ||||
|   TARGET_REPO: actions-runner-controller | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   release-controller: | ||||
|     name: Release | ||||
|     runs-on: ubuntu-latest | ||||
|     # gha-runner-scale-set has its own release workflow. | ||||
|     # We don't want to publish a new actions-runner-controller image | ||||
|     # we release gha-runner-scale-set. | ||||
|     if: ${{ !startsWith(github.event.inputs.release_tag_name, 'gha-runner-scale-set-') }} | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: 'go.mod' | ||||
| 
 | ||||
|       - name: Install tools | ||||
|         run: | | ||||
|           curl -L -O https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.2.0/kubebuilder_2.2.0_linux_amd64.tar.gz | ||||
|           tar zxvf kubebuilder_2.2.0_linux_amd64.tar.gz | ||||
|           sudo mv kubebuilder_2.2.0_linux_amd64 /usr/local/kubebuilder | ||||
|           curl -s https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh | bash | ||||
|           sudo mv kustomize /usr/local/bin | ||||
|           curl -L -O https://github.com/tcnksm/ghr/releases/download/v0.13.0/ghr_v0.13.0_linux_amd64.tar.gz | ||||
|           tar zxvf ghr_v0.13.0_linux_amd64.tar.gz | ||||
|           sudo mv ghr_v0.13.0_linux_amd64/ghr /usr/local/bin | ||||
| 
 | ||||
|       - name: Set version env variable | ||||
|         run: | | ||||
|           # Define the release tag name based on the event type | ||||
|           if [[ "${{ github.event_name }}" == "release" ]]; then | ||||
|             echo "VERSION=$(cat ${GITHUB_EVENT_PATH} | jq -r '.release.tag_name')" >> $GITHUB_ENV | ||||
|           elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then | ||||
|             echo "VERSION=${{ inputs.release_tag_name }}" >> $GITHUB_ENV | ||||
|           fi | ||||
| 
 | ||||
|       - name: Upload artifacts | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         run: | | ||||
|           make github-release | ||||
| 
 | ||||
|       - name: Get Token | ||||
|         id: get_workflow_token | ||||
|         uses: peter-murray/workflow-application-token-action@8e1ba3bf1619726336414f1014e37f17fbadf1db | ||||
|         with: | ||||
|           application_id: ${{ secrets.ACTIONS_ACCESS_APP_ID }} | ||||
|           application_private_key: ${{ secrets.ACTIONS_ACCESS_PK }} | ||||
|           organization: ${{ env.TARGET_ORG }} | ||||
| 
 | ||||
|       - name: Resolve push to registries | ||||
|         run: | | ||||
|           # Define the push to registries based on the event type | ||||
|           if [[ "${{ github.event_name }}" == "release" ]]; then | ||||
|             echo "PUSH_TO_REGISTRIES=true" >> $GITHUB_ENV | ||||
|           elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then | ||||
|             echo "PUSH_TO_REGISTRIES=${{ inputs.push_to_registries }}" >> $GITHUB_ENV | ||||
|           fi | ||||
| 
 | ||||
|       - name: Trigger Build And Push Images To Registries | ||||
|         run: | | ||||
|           # Authenticate | ||||
|           gh auth login --with-token <<< ${{ steps.get_workflow_token.outputs.token }} | ||||
| 
 | ||||
|           # Trigger the workflow run | ||||
|           jq -n '{"event_type": "arc", "client_payload": {"release_tag_name": "${{ env.VERSION }}", "push_to_registries": "${{ env.PUSH_TO_REGISTRIES }}" }}' \ | ||||
|             | gh api -X POST /repos/actions-runner-controller/releases/dispatches --input - | ||||
| 
 | ||||
|       - name: Job summary | ||||
|         run: | | ||||
|           echo "The [publish-arc](https://github.com/actions-runner-controller/releases/blob/main/.github/workflows/publish-arc.yaml) workflow has been triggered!" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Parameters:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Release tag: ${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Push to registries: ${{ env.PUSH_TO_REGISTRIES }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Status:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "[https://github.com/actions-runner-controller/releases/actions/workflows/publish-arc.yaml](https://github.com/actions-runner-controller/releases/actions/workflows/publish-arc.yaml)" >> $GITHUB_STEP_SUMMARY | ||||
|  | @ -1,79 +0,0 @@ | |||
| name: Release ARC Runner Images | ||||
| 
 | ||||
| # Revert to https://github.com/actions-runner-controller/releases#releases | ||||
| # for details on why we use this approach | ||||
| on: | ||||
|   # We must do a trigger on a push: instead of a types: closed so GitHub Secrets | ||||
|   # are available to the workflow run | ||||
|   push: | ||||
|     branches: | ||||
|       - 'master' | ||||
|     paths: | ||||
|       - 'runner/VERSION' | ||||
|       - '.github/workflows/arc-release-runners.yaml' | ||||
| 
 | ||||
| env: | ||||
|   # Safeguard to prevent pushing images to registeries after build | ||||
|   PUSH_TO_REGISTRIES: true | ||||
|   TARGET_ORG: actions-runner-controller | ||||
|   TARGET_WORKFLOW: release-runners.yaml | ||||
|   DOCKER_VERSION: 24.0.7 | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   build-runners: | ||||
|     name: Trigger Build and Push of Runner Images | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Get runner version | ||||
|         id: versions | ||||
|         run: | | ||||
|           runner_current_version="$(echo -n $(cat runner/VERSION | grep 'RUNNER_VERSION=' | cut -d '=' -f2))" | ||||
|           container_hooks_current_version="$(echo -n $(cat runner/VERSION | grep 'RUNNER_CONTAINER_HOOKS_VERSION=' | cut -d '=' -f2))" | ||||
|           echo runner_version=$runner_current_version >> $GITHUB_OUTPUT | ||||
|           echo container_hooks_version=$container_hooks_current_version >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|       - name: Get Token | ||||
|         id: get_workflow_token | ||||
|         uses: peter-murray/workflow-application-token-action@8e1ba3bf1619726336414f1014e37f17fbadf1db | ||||
|         with: | ||||
|           application_id: ${{ secrets.ACTIONS_ACCESS_APP_ID }} | ||||
|           application_private_key: ${{ secrets.ACTIONS_ACCESS_PK }} | ||||
|           organization: ${{ env.TARGET_ORG }} | ||||
| 
 | ||||
|       - name: Trigger Build And Push Runner Images To Registries | ||||
|         env: | ||||
|           RUNNER_VERSION: ${{ steps.versions.outputs.runner_version }} | ||||
|           CONTAINER_HOOKS_VERSION: ${{ steps.versions.outputs.container_hooks_version }} | ||||
|         run: | | ||||
|           # Authenticate | ||||
|           gh auth login --with-token <<< ${{ steps.get_workflow_token.outputs.token }} | ||||
| 
 | ||||
|           # Trigger the workflow run | ||||
|           gh workflow run ${{ env.TARGET_WORKFLOW }} -R ${{ env.TARGET_ORG }}/releases \ | ||||
|             -f runner_version=${{ env.RUNNER_VERSION }} \ | ||||
|             -f docker_version=${{ env.DOCKER_VERSION }} \ | ||||
|             -f runner_container_hooks_version=${{ env.CONTAINER_HOOKS_VERSION }} \ | ||||
|             -f sha='${{ github.sha }}' \ | ||||
|             -f push_to_registries=${{ env.PUSH_TO_REGISTRIES }} | ||||
| 
 | ||||
|       - name: Job summary | ||||
|         env: | ||||
|           RUNNER_VERSION: ${{ steps.versions.outputs.runner_version }} | ||||
|           CONTAINER_HOOKS_VERSION: ${{ steps.versions.outputs.container_hooks_version }} | ||||
|         run: | | ||||
|           echo "The [release-runners.yaml](https://github.com/actions-runner-controller/releases/blob/main/.github/workflows/release-runners.yaml) workflow has been triggered!" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Parameters:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- runner_version: ${{ env.RUNNER_VERSION }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- docker_version: ${{ env.DOCKER_VERSION }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- runner_container_hooks_version: ${{ env.CONTAINER_HOOKS_VERSION }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- sha: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- push_to_registries: ${{ env.PUSH_TO_REGISTRIES }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Status:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "[https://github.com/actions-runner-controller/releases/actions/workflows/release-runners.yaml](https://github.com/actions-runner-controller/releases/actions/workflows/release-runners.yaml)" >> $GITHUB_STEP_SUMMARY | ||||
|  | @ -1,153 +0,0 @@ | |||
| # This workflows polls releases from actions/runner and in case of a new one it | ||||
| # updates files containing runner version and opens a pull request. | ||||
| name: Runner Updates Check (Scheduled Job) | ||||
| 
 | ||||
| on: | ||||
|   schedule: | ||||
|     # run daily | ||||
|     - cron: "0 9 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   # check_versions compares our current version and the latest available runner | ||||
|   # version and sets them as outputs. | ||||
|   check_versions: | ||||
|     runs-on: ubuntu-latest | ||||
|     env: | ||||
|       GH_TOKEN: ${{ github.token }} | ||||
|     outputs: | ||||
|       runner_current_version: ${{ steps.runner_versions.outputs.runner_current_version }} | ||||
|       runner_latest_version: ${{ steps.runner_versions.outputs.runner_latest_version }} | ||||
|       container_hooks_current_version: ${{ steps.container_hooks_versions.outputs.container_hooks_current_version }} | ||||
|       container_hooks_latest_version: ${{ steps.container_hooks_versions.outputs.container_hooks_latest_version }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: Get runner current and latest versions | ||||
|         id: runner_versions | ||||
|         run: | | ||||
|           CURRENT_VERSION="$(echo -n $(cat runner/VERSION | grep 'RUNNER_VERSION=' | cut -d '=' -f2))" | ||||
|           echo "Current version: $CURRENT_VERSION" | ||||
|           echo runner_current_version=$CURRENT_VERSION >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|           LATEST_VERSION=$(gh release list --exclude-drafts --exclude-pre-releases --limit 1 -R actions/runner | grep -oP '(?<=v)[0-9.]+' | head -1) | ||||
|           echo "Latest version: $LATEST_VERSION" | ||||
|           echo runner_latest_version=$LATEST_VERSION >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|       - name: Get container-hooks current and latest versions | ||||
|         id: container_hooks_versions | ||||
|         run: | | ||||
|           CURRENT_VERSION="$(echo -n $(cat runner/VERSION | grep 'RUNNER_CONTAINER_HOOKS_VERSION=' | cut -d '=' -f2))" | ||||
|           echo "Current version: $CURRENT_VERSION" | ||||
|           echo container_hooks_current_version=$CURRENT_VERSION >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|           LATEST_VERSION=$(gh release list --exclude-drafts --exclude-pre-releases --limit 1 -R actions/runner-container-hooks | grep -oP '(?<=v)[0-9.]+' | head -1) | ||||
|           echo "Latest version: $LATEST_VERSION" | ||||
|           echo container_hooks_latest_version=$LATEST_VERSION >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|   # check_pr checks if a PR for the same update already exists. It only runs if | ||||
|   # runner latest version != our current version. If no existing PR is found, | ||||
|   # it sets a PR name as output. | ||||
|   check_pr: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: check_versions | ||||
|     if: needs.check_versions.outputs.runner_current_version != needs.check_versions.outputs.runner_latest_version || needs.check_versions.outputs.container_hooks_current_version != needs.check_versions.outputs.container_hooks_latest_version | ||||
|     outputs: | ||||
|       pr_name: ${{ steps.pr_name.outputs.pr_name }} | ||||
|     env: | ||||
|       GH_TOKEN: ${{ github.token }} | ||||
|     steps: | ||||
|       - name: debug | ||||
|         run: | ||||
|           echo "RUNNER_CURRENT_VERSION=${{ needs.check_versions.outputs.runner_current_version }}" | ||||
|           echo "RUNNER_LATEST_VERSION=${{ needs.check_versions.outputs.runner_latest_version }}" | ||||
|           echo "CONTAINER_HOOKS_CURRENT_VERSION=${{ needs.check_versions.outputs.container_hooks_current_version }}" | ||||
|           echo "CONTAINER_HOOKS_LATEST_VERSION=${{ needs.check_versions.outputs.container_hooks_latest_version }}" | ||||
| 
 | ||||
|       - uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: PR Name | ||||
|         id: pr_name | ||||
|         env: | ||||
|           RUNNER_CURRENT_VERSION: ${{ needs.check_versions.outputs.runner_current_version }} | ||||
|           RUNNER_LATEST_VERSION: ${{ needs.check_versions.outputs.runner_latest_version }} | ||||
|           CONTAINER_HOOKS_CURRENT_VERSION: ${{ needs.check_versions.outputs.container_hooks_current_version }} | ||||
|           CONTAINER_HOOKS_LATEST_VERSION: ${{ needs.check_versions.outputs.container_hooks_latest_version }} | ||||
|         # Generate a PR name with the following title: | ||||
|         # Updates: runner to v2.304.0 and container-hooks to v0.3.1 | ||||
|         run: | | ||||
|           RUNNER_MESSAGE="runner to v${RUNNER_LATEST_VERSION}" | ||||
|           CONTAINER_HOOKS_MESSAGE="container-hooks to v${CONTAINER_HOOKS_LATEST_VERSION}" | ||||
| 
 | ||||
|           PR_NAME="Updates:" | ||||
|           if [ "$RUNNER_CURRENT_VERSION" != "$RUNNER_LATEST_VERSION" ] | ||||
|           then | ||||
|             PR_NAME="$PR_NAME $RUNNER_MESSAGE" | ||||
|           fi | ||||
|           if [ "$CONTAINER_HOOKS_CURRENT_VERSION" != "$CONTAINER_HOOKS_LATEST_VERSION" ] | ||||
|           then | ||||
|             PR_NAME="$PR_NAME $CONTAINER_HOOKS_MESSAGE" | ||||
|           fi | ||||
| 
 | ||||
|           result=$(gh pr list --search "$PR_NAME" --json number --jq ".[].number" --limit 1) | ||||
|           if [ -z "$result" ] | ||||
|           then | ||||
|             echo "No existing PRs found, setting output with pr_name=$PR_NAME" | ||||
|             echo pr_name=$PR_NAME >> $GITHUB_OUTPUT | ||||
|           else | ||||
|             echo "Found a PR with title '$PR_NAME' already existing: ${{ github.server_url }}/${{ github.repository }}/pull/$result" | ||||
|           fi | ||||
| 
 | ||||
|   # update_version updates runner version in the files listed below, commits | ||||
|   # the changes and opens a pull request as `github-actions` bot. | ||||
|   update_version: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: | ||||
|       - check_versions | ||||
|       - check_pr | ||||
|     if: needs.check_pr.outputs.pr_name | ||||
|     permissions: | ||||
|       pull-requests: write | ||||
|       contents: write | ||||
|       actions: write | ||||
|     env: | ||||
|       GH_TOKEN: ${{ github.token }} | ||||
|       RUNNER_CURRENT_VERSION: ${{ needs.check_versions.outputs.runner_current_version }} | ||||
|       RUNNER_LATEST_VERSION: ${{ needs.check_versions.outputs.runner_latest_version }} | ||||
|       CONTAINER_HOOKS_CURRENT_VERSION: ${{ needs.check_versions.outputs.container_hooks_current_version }} | ||||
|       CONTAINER_HOOKS_LATEST_VERSION: ${{ needs.check_versions.outputs.container_hooks_latest_version }} | ||||
|       PR_NAME: ${{ needs.check_pr.outputs.pr_name }} | ||||
| 
 | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: New branch | ||||
|         run: git checkout -b update-runner-"$(date +%Y-%m-%d)" | ||||
| 
 | ||||
|       - name: Update files | ||||
|         run: | | ||||
|           CURRENT_VERSION="${RUNNER_CURRENT_VERSION//./\\.}" | ||||
|           LATEST_VERSION="${RUNNER_LATEST_VERSION//./\\.}" | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" runner/VERSION | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" runner/Makefile | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" Makefile | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" test/e2e/e2e_test.go | ||||
| 
 | ||||
|           CURRENT_VERSION="${CONTAINER_HOOKS_CURRENT_VERSION//./\\.}" | ||||
|           LATEST_VERSION="${CONTAINER_HOOKS_LATEST_VERSION//./\\.}" | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" runner/VERSION | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" runner/Makefile | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" Makefile | ||||
|           sed -i "s/$CURRENT_VERSION/$LATEST_VERSION/g" test/e2e/e2e_test.go | ||||
| 
 | ||||
|       - name: Commit changes | ||||
|         run: | | ||||
|           # from https://github.com/orgs/community/discussions/26560 | ||||
|           git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | ||||
|           git config user.name "github-actions[bot]" | ||||
|           git add . | ||||
|           git commit -m "$PR_NAME" | ||||
|           git push -u origin HEAD | ||||
| 
 | ||||
|       - name: Create pull request | ||||
|         run: gh pr create -f -l "runners update" | ||||
|  | @ -1,103 +0,0 @@ | |||
| name: Validate Helm Chart | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|     paths: | ||||
|       - 'charts/**' | ||||
|       - '.github/workflows/arc-validate-chart.yaml' | ||||
|       - '!charts/actions-runner-controller/docs/**' | ||||
|       - '!**.md' | ||||
|       - '!charts/gha-runner-scale-set-controller/**' | ||||
|       - '!charts/gha-runner-scale-set/**' | ||||
|   push: | ||||
|     paths: | ||||
|       - 'charts/**' | ||||
|       - '.github/workflows/arc-validate-chart.yaml' | ||||
|       - '!charts/actions-runner-controller/docs/**' | ||||
|       - '!**.md' | ||||
|       - '!charts/gha-runner-scale-set-controller/**' | ||||
|       - '!charts/gha-runner-scale-set/**' | ||||
|   workflow_dispatch: | ||||
| env: | ||||
|   KUBE_SCORE_VERSION: 1.10.0 | ||||
|   HELM_VERSION: v3.8.0 | ||||
| 
 | ||||
| permissions: | ||||
|   contents: read | ||||
| 
 | ||||
| concurrency: | ||||
|   # This will make sure we only apply the concurrency limits on pull requests | ||||
|   # but not pushes to master branch by making the concurrency group name unique | ||||
|   # for pushes | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   validate-chart: | ||||
|     name: Lint Chart | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
| 
 | ||||
|       - name: Set up Helm | ||||
|         # Using https://github.com/Azure/setup-helm/releases/tag/v3.5 | ||||
|         uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 | ||||
|         with: | ||||
|           version: ${{ env.HELM_VERSION }} | ||||
| 
 | ||||
|       - name: Set up kube-score | ||||
|         run: | | ||||
|           wget https://github.com/zegl/kube-score/releases/download/v${{ env.KUBE_SCORE_VERSION }}/kube-score_${{ env.KUBE_SCORE_VERSION }}_linux_amd64 -O kube-score | ||||
|           chmod 755 kube-score | ||||
| 
 | ||||
|       - name: Kube-score generated manifests | ||||
|         run: helm template  --values charts/.ci/values-kube-score.yaml charts/* | ./kube-score score - | ||||
|               --ignore-test pod-networkpolicy | ||||
|               --ignore-test deployment-has-poddisruptionbudget | ||||
|               --ignore-test deployment-has-host-podantiaffinity | ||||
|               --ignore-test container-security-context | ||||
|               --ignore-test pod-probes | ||||
|               --ignore-test container-image-tag | ||||
|               --enable-optional-test container-security-context-privileged | ||||
|               --enable-optional-test container-security-context-readonlyrootfilesystem | ||||
| 
 | ||||
|       # python is a requirement for the chart-testing action below (supports yamllint among other tests) | ||||
|       - uses: actions/setup-python@v4 | ||||
|         with: | ||||
|           python-version: '3.11' | ||||
| 
 | ||||
|       - name: Set up chart-testing | ||||
|         uses: helm/chart-testing-action@v2.6.0 | ||||
| 
 | ||||
|       - name: Run chart-testing (list-changed) | ||||
|         id: list-changed | ||||
|         run: | | ||||
|           changed=$(ct list-changed --config charts/.ci/ct-config.yaml) | ||||
|           if [[ -n "$changed" ]]; then | ||||
|             echo "changed=true" >> $GITHUB_OUTPUT | ||||
|           fi | ||||
| 
 | ||||
|       - name: Run chart-testing (lint) | ||||
|         run: | | ||||
|           ct lint --config charts/.ci/ct-config.yaml | ||||
| 
 | ||||
|       - name: Create kind cluster | ||||
|         uses: helm/kind-action@v1.4.0 | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
| 
 | ||||
|       # We need cert-manager already installed in the cluster because we assume the CRDs exist | ||||
|       - name: Install cert-manager | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         run: | | ||||
|           helm repo add jetstack https://charts.jetstack.io --force-update | ||||
|           helm install cert-manager jetstack/cert-manager --set installCRDs=true --wait | ||||
| 
 | ||||
|       - name: Run chart-testing (install) | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         run: | | ||||
|           ct install --config charts/.ci/ct-config.yaml | ||||
|  | @ -1,52 +0,0 @@ | |||
| name: Validate ARC Runners | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - '**' | ||||
|     paths: | ||||
|       - 'runner/**' | ||||
|       - 'test/startup/**' | ||||
|       - '!**.md' | ||||
| 
 | ||||
| permissions: | ||||
|   contents: read | ||||
| 
 | ||||
| concurrency: | ||||
|   # This will make sure we only apply the concurrency limits on pull requests  | ||||
|   # but not pushes to master branch by making the concurrency group name unique | ||||
|   # for pushes | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   shellcheck: | ||||
|     name: runner / shellcheck | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: shellcheck | ||||
|         uses: reviewdog/action-shellcheck@v1 | ||||
|         with: | ||||
|           github_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           path: "./runner" | ||||
|           pattern: | | ||||
|             *.sh | ||||
|             *.bash | ||||
|             update-status | ||||
|           # Make this consistent with `make shellsheck` | ||||
|           shellcheck_flags: "--shell bash --source-path runner" | ||||
|           exclude: "./.git/*" | ||||
|           check_all_files_with_shebangs: "false" | ||||
|           # Set this to "true" once we addressed all the shellcheck findings | ||||
|           fail_on_error: "false" | ||||
|   test-runner-entrypoint: | ||||
|     name: Test entrypoint | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v3 | ||||
| 
 | ||||
|     - name: Run tests | ||||
|       run: | | ||||
|         make acceptance/runner/startup | ||||
|  | @ -1,212 +0,0 @@ | |||
| name: (gha) Publish Helm Charts | ||||
| 
 | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|     inputs: | ||||
|       ref: | ||||
|         description: 'The branch, tag or SHA to cut a release from' | ||||
|         required: false | ||||
|         type: string | ||||
|         default: '' | ||||
|       release_tag_name: | ||||
|         description: 'The name to tag the controller image with' | ||||
|         required: true | ||||
|         type: string | ||||
|         default: 'canary' | ||||
|       push_to_registries: | ||||
|         description: 'Push images to registries' | ||||
|         required: true | ||||
|         type: boolean | ||||
|         default: false | ||||
|       publish_gha_runner_scale_set_controller_chart: | ||||
|         description: 'Publish new helm chart for gha-runner-scale-set-controller' | ||||
|         required: true | ||||
|         type: boolean | ||||
|         default: false | ||||
|       publish_gha_runner_scale_set_chart: | ||||
|         description: 'Publish new helm chart for gha-runner-scale-set' | ||||
|         required: true | ||||
|         type: boolean | ||||
|         default: false | ||||
| 
 | ||||
| env: | ||||
|   HELM_VERSION: v3.8.0 | ||||
| 
 | ||||
| permissions: | ||||
|   packages: write | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   build-push-image: | ||||
|     name: Build and push controller image | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           # If inputs.ref is empty, it'll resolve to the default branch | ||||
|           ref: ${{ inputs.ref }} | ||||
| 
 | ||||
|       - name: Check chart versions | ||||
|         # Binary version and chart versions need to match. | ||||
|         # In case of an upgrade, the controller will try to clean up | ||||
|         # resources with older versions that should have been cleaned up | ||||
|         # during the upgrade process | ||||
|         run: ./hack/check-gh-chart-versions.sh ${{ inputs.release_tag_name }} | ||||
| 
 | ||||
|       - name: Resolve parameters | ||||
|         id: resolve_parameters | ||||
|         run: | | ||||
|           resolvedRef="${{ inputs.ref }}" | ||||
|           if [ -z "$resolvedRef" ] | ||||
|           then | ||||
|             resolvedRef="${{ github.ref }}" | ||||
|           fi | ||||
|           echo "resolved_ref=$resolvedRef" >> $GITHUB_OUTPUT | ||||
|           echo "INFO: Resolving short SHA for $resolvedRef" | ||||
|           echo "short_sha=$(git rev-parse --short $resolvedRef)" >> $GITHUB_OUTPUT | ||||
|           echo "INFO: Normalizing repository name (lowercase)" | ||||
|           echo "repository_owner=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@v2 | ||||
| 
 | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v2 | ||||
|         with: | ||||
|           # Pinning v0.9.1 for Buildx and BuildKit v0.10.6 | ||||
|           # BuildKit v0.11 which has a bug causing intermittent | ||||
|           # failures pushing images to GHCR | ||||
|           version: v0.9.1 | ||||
|           driver-opts: image=moby/buildkit:v0.10.6 | ||||
| 
 | ||||
|       - name: Login to GitHub Container Registry | ||||
|         uses: docker/login-action@v2 | ||||
|         with: | ||||
|           registry: ghcr.io | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Build & push controller image | ||||
|         uses: docker/build-push-action@v3 | ||||
|         with: | ||||
|           file: Dockerfile | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
|           build-args: VERSION=${{ inputs.release_tag_name }} | ||||
|           push: ${{ inputs.push_to_registries }} | ||||
|           tags: | | ||||
|             ghcr.io/${{ steps.resolve_parameters.outputs.repository_owner }}/gha-runner-scale-set-controller:${{ inputs.release_tag_name }} | ||||
|             ghcr.io/${{ steps.resolve_parameters.outputs.repository_owner }}/gha-runner-scale-set-controller:${{ inputs.release_tag_name }}-${{ steps.resolve_parameters.outputs.short_sha }} | ||||
|           cache-from: type=gha | ||||
|           cache-to: type=gha,mode=max | ||||
| 
 | ||||
|       - name: Job summary | ||||
|         run: | | ||||
|           echo "The [gha-publish-chart.yaml](https://github.com/actions/actions-runner-controller/blob/main/.github/workflows/gha-publish-chart.yaml) workflow run was completed successfully!" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Parameters:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Ref: ${{ steps.resolve_parameters.outputs.resolvedRef }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Short SHA: ${{ steps.resolve_parameters.outputs.short_sha }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Release tag: ${{ inputs.release_tag_name }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Push to registries: ${{ inputs.push_to_registries }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
| 
 | ||||
|   publish-helm-chart-gha-runner-scale-set-controller: | ||||
|     if: ${{ inputs.publish_gha_runner_scale_set_controller_chart == true }} | ||||
|     needs: build-push-image | ||||
|     name: Publish Helm chart for gha-runner-scale-set-controller | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           # If inputs.ref is empty, it'll resolve to the default branch | ||||
|           ref: ${{ inputs.ref }} | ||||
| 
 | ||||
|       - name: Resolve parameters | ||||
|         id: resolve_parameters | ||||
|         run: | | ||||
|           resolvedRef="${{ inputs.ref }}" | ||||
|           if [ -z "$resolvedRef" ] | ||||
|           then | ||||
|             resolvedRef="${{ github.ref }}" | ||||
|           fi | ||||
|           echo "INFO: Resolving short SHA for $resolvedRef" | ||||
|           echo "short_sha=$(git rev-parse --short $resolvedRef)" >> $GITHUB_OUTPUT | ||||
|           echo "INFO: Normalizing repository name (lowercase)" | ||||
|           echo "repository_owner=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|       - name: Set up Helm | ||||
|         # Using https://github.com/Azure/setup-helm/releases/tag/v3.5 | ||||
|         uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 | ||||
|         with: | ||||
|           version: ${{ env.HELM_VERSION }} | ||||
| 
 | ||||
|       - name: Publish new helm chart for gha-runner-scale-set-controller | ||||
|         run: | | ||||
|           echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io --username ${{ github.actor }} --password-stdin | ||||
|           GHA_RUNNER_SCALE_SET_CONTROLLER_CHART_VERSION_TAG=$(cat charts/gha-runner-scale-set-controller/Chart.yaml | grep version: | cut -d " " -f 2) | ||||
|           echo "GHA_RUNNER_SCALE_SET_CONTROLLER_CHART_VERSION_TAG=${GHA_RUNNER_SCALE_SET_CONTROLLER_CHART_VERSION_TAG}" >> $GITHUB_ENV | ||||
|           helm package charts/gha-runner-scale-set-controller/ --version="${GHA_RUNNER_SCALE_SET_CONTROLLER_CHART_VERSION_TAG}" | ||||
|           helm push gha-runner-scale-set-controller-"${GHA_RUNNER_SCALE_SET_CONTROLLER_CHART_VERSION_TAG}".tgz oci://ghcr.io/${{ steps.resolve_parameters.outputs.repository_owner }}/actions-runner-controller-charts | ||||
| 
 | ||||
|       - name: Job summary | ||||
|         run: | | ||||
|           echo "New helm chart for gha-runner-scale-set-controller published successfully!" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Parameters:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Ref: ${{ steps.resolve_parameters.outputs.resolvedRef }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Short SHA: ${{ steps.resolve_parameters.outputs.short_sha }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- gha-runner-scale-set-controller Chart version: ${{ env.GHA_RUNNER_SCALE_SET_CONTROLLER_CHART_VERSION_TAG }}" >> $GITHUB_STEP_SUMMARY | ||||
| 
 | ||||
|   publish-helm-chart-gha-runner-scale-set: | ||||
|     if: ${{ inputs.publish_gha_runner_scale_set_chart == true }} | ||||
|     needs: build-push-image | ||||
|     name: Publish Helm chart for gha-runner-scale-set | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           # If inputs.ref is empty, it'll resolve to the default branch | ||||
|           ref: ${{ inputs.ref }} | ||||
| 
 | ||||
|       - name: Resolve parameters | ||||
|         id: resolve_parameters | ||||
|         run: | | ||||
|           resolvedRef="${{ inputs.ref }}" | ||||
|           if [ -z "$resolvedRef" ] | ||||
|           then | ||||
|             resolvedRef="${{ github.ref }}" | ||||
|           fi | ||||
|           echo "INFO: Resolving short SHA for $resolvedRef" | ||||
|           echo "short_sha=$(git rev-parse --short $resolvedRef)" >> $GITHUB_OUTPUT | ||||
|           echo "INFO: Normalizing repository name (lowercase)" | ||||
|           echo "repository_owner=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT | ||||
| 
 | ||||
|       - name: Set up Helm | ||||
|         # Using https://github.com/Azure/setup-helm/releases/tag/v3.5 | ||||
|         uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 | ||||
|         with: | ||||
|           version: ${{ env.HELM_VERSION }} | ||||
| 
 | ||||
|       - name: Publish new helm chart for gha-runner-scale-set | ||||
|         run: | | ||||
|           echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io --username ${{ github.actor }} --password-stdin | ||||
| 
 | ||||
|           GHA_RUNNER_SCALE_SET_CHART_VERSION_TAG=$(cat charts/gha-runner-scale-set/Chart.yaml | grep version: | cut -d " " -f 2) | ||||
|           echo "GHA_RUNNER_SCALE_SET_CHART_VERSION_TAG=${GHA_RUNNER_SCALE_SET_CHART_VERSION_TAG}" >> $GITHUB_ENV | ||||
|           helm package charts/gha-runner-scale-set/ --version="${GHA_RUNNER_SCALE_SET_CHART_VERSION_TAG}" | ||||
|           helm push gha-runner-scale-set-"${GHA_RUNNER_SCALE_SET_CHART_VERSION_TAG}".tgz oci://ghcr.io/${{ steps.resolve_parameters.outputs.repository_owner }}/actions-runner-controller-charts | ||||
| 
 | ||||
|       - name: Job summary | ||||
|         run: | | ||||
|           echo "New helm chart for gha-runner-scale-set published successfully!" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "**Parameters:**" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Ref: ${{ steps.resolve_parameters.outputs.resolvedRef }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- Short SHA: ${{ steps.resolve_parameters.outputs.short_sha }}" >> $GITHUB_STEP_SUMMARY | ||||
|           echo "- gha-runner-scale-set Chart version: ${{ env.GHA_RUNNER_SCALE_SET_CHART_VERSION_TAG }}" >> $GITHUB_STEP_SUMMARY | ||||
|  | @ -1,125 +0,0 @@ | |||
| name: (gha) Validate Helm Charts | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|     paths: | ||||
|       - 'charts/**' | ||||
|       - '.github/workflows/gha-validate-chart.yaml' | ||||
|       - '!charts/actions-runner-controller/**' | ||||
|       - '!**.md' | ||||
|   push: | ||||
|     paths: | ||||
|       - 'charts/**' | ||||
|       - '.github/workflows/gha-validate-chart.yaml' | ||||
|       - '!charts/actions-runner-controller/**' | ||||
|       - '!**.md' | ||||
|   workflow_dispatch: | ||||
| env: | ||||
|   KUBE_SCORE_VERSION: 1.16.1 | ||||
|   HELM_VERSION: v3.8.0 | ||||
| 
 | ||||
| permissions: | ||||
|   contents: read | ||||
| 
 | ||||
| concurrency: | ||||
|   # This will make sure we only apply the concurrency limits on pull requests | ||||
|   # but not pushes to master branch by making the concurrency group name unique | ||||
|   # for pushes | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   validate-chart: | ||||
|     name: Lint Chart | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
| 
 | ||||
|       - name: Set up Helm | ||||
|         # Using https://github.com/Azure/setup-helm/releases/tag/v3.5 | ||||
|         uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 | ||||
|         with: | ||||
|           version: ${{ env.HELM_VERSION }} | ||||
| 
 | ||||
|       - name: Set up kube-score | ||||
|         run: | | ||||
|           wget https://github.com/zegl/kube-score/releases/download/v${{ env.KUBE_SCORE_VERSION }}/kube-score_${{ env.KUBE_SCORE_VERSION }}_linux_amd64 -O kube-score | ||||
|           chmod 755 kube-score | ||||
| 
 | ||||
|       - name: Kube-score generated manifests | ||||
|         run: helm template  --values charts/.ci/values-kube-score.yaml charts/* | ./kube-score score - | ||||
|               --ignore-test pod-networkpolicy | ||||
|               --ignore-test deployment-has-poddisruptionbudget | ||||
|               --ignore-test deployment-has-host-podantiaffinity | ||||
|               --ignore-test container-security-context | ||||
|               --ignore-test pod-probes | ||||
|               --ignore-test container-image-tag | ||||
|               --enable-optional-test container-security-context-privileged | ||||
|               --enable-optional-test container-security-context-readonlyrootfilesystem | ||||
| 
 | ||||
|       # python is a requirement for the chart-testing action below (supports yamllint among other tests) | ||||
|       - uses: actions/setup-python@v4 | ||||
|         with: | ||||
|           python-version: '3.11' | ||||
| 
 | ||||
|       - name: Set up chart-testing | ||||
|         uses: helm/chart-testing-action@v2.6.0 | ||||
| 
 | ||||
|       - name: Run chart-testing (list-changed) | ||||
|         id: list-changed | ||||
|         run: | | ||||
|           ct version | ||||
|           changed=$(ct list-changed --config charts/.ci/ct-config-gha.yaml) | ||||
|           if [[ -n "$changed" ]]; then | ||||
|             echo "changed=true" >> $GITHUB_OUTPUT | ||||
|           fi | ||||
| 
 | ||||
|       - name: Run chart-testing (lint) | ||||
|         run: | | ||||
|           ct lint --config charts/.ci/ct-config-gha.yaml | ||||
| 
 | ||||
|       - name: Set up docker buildx | ||||
|         uses: docker/setup-buildx-action@v2 | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         with: | ||||
|           version: latest | ||||
| 
 | ||||
|       - name: Build controller image | ||||
|         uses: docker/build-push-action@v3 | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         with: | ||||
|           file: Dockerfile | ||||
|           platforms: linux/amd64 | ||||
|           load: true | ||||
|           build-args: | | ||||
|             DOCKER_IMAGE_NAME=test-arc | ||||
|             VERSION=dev | ||||
|           tags: | | ||||
|             test-arc:dev | ||||
|           cache-from: type=gha | ||||
|           cache-to: type=gha,mode=max | ||||
| 
 | ||||
|       - name: Create kind cluster | ||||
|         uses: helm/kind-action@v1.4.0 | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         with: | ||||
|           cluster_name: chart-testing | ||||
| 
 | ||||
|       - name: Load image into cluster | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         run: | | ||||
|             export DOCKER_IMAGE_NAME=test-arc | ||||
|             export VERSION=dev | ||||
|             export IMG_RESULT=load | ||||
|             make docker-buildx | ||||
|             kind load docker-image test-arc:dev --name chart-testing | ||||
| 
 | ||||
|       - name: Run chart-testing (install) | ||||
|         if: steps.list-changed.outputs.changed == 'true' | ||||
|         run: | | ||||
|           ct install --config charts/.ci/ct-config-gha.yaml | ||||
|  | @ -1,29 +0,0 @@ | |||
| name: First Interaction | ||||
| 
 | ||||
| on: | ||||
|   issues: | ||||
|     types: [opened] | ||||
|   pull_request: | ||||
|     branches: [master] | ||||
|     types: [opened] | ||||
| 
 | ||||
| jobs: | ||||
|   check_for_first_interaction: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - uses: actions/first-interaction@main | ||||
|         with: | ||||
|           repo-token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           issue-message: | | ||||
|             Hello! Thank you for filing an issue. | ||||
| 
 | ||||
|             The maintainers will triage your issue shortly. | ||||
| 
 | ||||
|             In the meantime, please take a look at the [troubleshooting guide](https://github.com/actions/actions-runner-controller/blob/master/TROUBLESHOOTING.md) for bug reports. | ||||
|              | ||||
|             If this is a feature request, please review our [contribution guidelines](https://github.com/actions/actions-runner-controller/blob/master/CONTRIBUTING.md). | ||||
|           pr-message: | | ||||
|             Hello! Thank you for your contribution. | ||||
| 
 | ||||
|             Please review our [contribution guidelines](https://github.com/actions/actions-runner-controller/blob/master/CONTRIBUTING.md) to understand the project's testing and code conventions. | ||||
|  | @ -1,25 +0,0 @@ | |||
| name: Run Stale Bot | ||||
| on: | ||||
|   schedule: | ||||
|     - cron: '30 1 * * *' | ||||
| 
 | ||||
| permissions: | ||||
|   contents: read | ||||
| 
 | ||||
| jobs: | ||||
|   stale: | ||||
|     name: Run Stale | ||||
|     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: | ||||
|       - uses: actions/stale@v6 | ||||
|         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.' | ||||
|           # turn off stale for both issues and PRs | ||||
|           days-before-stale: -1 | ||||
|           # turn stale back on for issues only | ||||
|           days-before-issue-stale: 30 | ||||
|           days-before-issue-close: 14 | ||||
|           exempt-issue-labels: 'pinned,security,enhancement,refactor,documentation,chore,bug,dependencies,needs-investigation' | ||||
		Loading…
	
		Reference in New Issue