Implement runner fallback mechanism for docs and unit test workflows

This commit is contained in:
Palash Tyagi 2025-05-04 00:29:06 +01:00
parent d15aaf437f
commit 6076e0c8e3
2 changed files with 43 additions and 22 deletions

View File

@ -17,10 +17,21 @@ permissions:
pages: write
jobs:
docs-and-testcov:
# runs-on: ubuntu-latest
runs-on: [self-hosted, ubuntu-latest]
pick-runner:
runs-on: ubuntu-latest
outputs:
runner: ${{ steps.choose.outputs.use-runner }}
steps:
- id: choose
uses: ./.github/actions/runner-fallback@v1 # or your-org/runner-fallback@v1
with:
primary-runner: "self-hosted,ubuntu-latest"
fallback-runner: "ubuntu-latest"
github-token: ${{ secrets.GITHUB_TOKEN }}
docs-and-testcov:
needs: pick-runner
runs-on: ${{ fromJson(needs.pick-runner.outputs.runner) }}
steps:
- uses: actions/checkout@v4
@ -56,19 +67,17 @@ jobs:
fi
- name: Export tarpaulin coverage badge JSON
# extract raw coverage and round to 2 decimal places
run: |
# extract raw coverage
coverage=$(jq '.coverage' tarpaulin-report.json)
# round to 2 decimal places
formatted=$(printf "%.2f" "$coverage")
# build the badge JSON using the pre-formatted string
jq --arg message "$formatted" \
'{schemaVersion:1,
label:"tarpaulin-report",
message:$message,
color:"blue"}' \
tarpaulin-report.json \
> tarpaulin-badge.json
coverage=$(jq '.coverage' tarpaulin-report.json)
formatted=$(printf "%.2f" "$coverage")
jq --arg message "$formatted" \
'{schemaVersion:1,
label:"tarpaulin-report",
message:$message,
color:"blue"}' \
tarpaulin-report.json \
> tarpaulin-badge.json
- name: Save last commit date JSON
run: |

View File

@ -11,11 +11,23 @@ concurrency:
cancel-in-progress: true
jobs:
pick-runner:
runs-on: ubuntu-latest
outputs:
runner: ${{ steps.choose.outputs.use-runner }}
steps:
- id: choose
uses: ./.github/actions/runner-fallback@v1
with:
primary-runner: "self-hosted,ubuntu-latest"
fallback-runner: "ubuntu-latest"
github-token: ${{ secrets.GITHUB_TOKEN }}
run-unit-tests:
needs: pick-runner
if: github.event.pull_request.draft == false
name: run-unit-tests
# runs-on: ubuntu-latest
runs-on: [self-hosted, ubuntu-latest]
runs-on: ${{ fromJson(needs.pick-runner.outputs.runner) }}
env:
CARGO_TERM_COLOR: always