From b32d569ee1715eacda8cdb8c3eef28bafd417824 Mon Sep 17 00:00:00 2001 From: seriousm4x Date: Tue, 3 Oct 2023 16:41:53 +0200 Subject: [PATCH] gh-action: auto-choose runner --- .github/workflows/go-test.yml | 3 --- .github/workflows/release.yml | 25 ++++++++++++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml index 47e35b8d..274c6084 100644 --- a/.github/workflows/go-test.yml +++ b/.github/workflows/go-test.yml @@ -7,7 +7,6 @@ jobs: runs-on: ubuntu-latest outputs: runner-label: ${{ steps.set-runner.outputs.runner-label }} - steps: - name: Set runner id: set-runner @@ -25,12 +24,10 @@ jobs: runs-on: ${{ needs.check-runner.outputs.runner-label }} steps: - uses: actions/checkout@v4 - - name: Set up Go uses: actions/setup-go@v4 with: go-version: ">=1.21" - - name: Test run: | cd backend diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2925324a..03ef0850 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,8 +7,25 @@ on: workflow_dispatch: jobs: - goreleaser: + check-runner: runs-on: ubuntu-latest + outputs: + runner-label: ${{ steps.set-runner.outputs.runner-label }} + steps: + - name: Set runner + id: set-runner + run: | + runners=$(curl -s -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.REPO_ACCESS_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/actions/runners") + available=$(echo "$runners" | jq '.runners[] | select(.status == "online" and .busy == false and .labels[] .name == "self-hosted")') + if [ -n "$available" ]; then + echo "runner-label=self-hosted" >> "$GITHUB_OUTPUT" + else + echo "runner-label=ubuntu-latest" >> "$GITHUB_OUTPUT" + fi + + goreleaser: + needs: check-runner + runs-on: ${{ needs.check-runner.outputs.runner-label }} steps: # pull code - name: Checkout @@ -48,8 +65,10 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} docker: - needs: goreleaser - runs-on: ubuntu-latest + needs: + - goreleaser + - check-runner + runs-on: ${{ needs.check-runner.outputs.runner-label }} steps: # pull code - name: Check Out Repo