Skip to content

CI Health

CI Health #3847

Workflow file for this run

name: CI Health
on:
schedule:
- cron: "*/15 * * * *" # Every 15 minutes
workflow_dispatch: {} # Manual trigger
jobs:
update-health:
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
id-token: write # Required for Workload Identity
steps:
- uses: actions/checkout@v4
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: "projects/125098404903/locations/global/workloadIdentityPools/github-actions-pool/providers/github-provider"
service_account: "github-ci@slang-runners.iam.gserviceaccount.com"
- name: Set up gcloud
uses: google-github-actions/setup-gcloud@v2
- name: Checkout analytics repo
uses: actions/checkout@v4
with:
repository: shader-slang/slang-ci-analytics
path: ci_analytics_repo
token: ${{ secrets.CI_ANALYTICS_PAT }}
- name: Generate health page
env:
GH_TOKEN: ${{ secrets.CI_ANALYTICS_PAT }}
run: |
python3 extras/ci/analytics/ci_health.py \
--output ci_analytics_repo
- name: Generate status page
run: |
python3 extras/ci/analytics/ci_status.py \
--output ci_analytics_repo
- name: Push health page
run: |
cd ci_analytics_repo
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add health.html status.html
git add health_snapshots.jsonl 2>/dev/null || true
git diff --cached --quiet || {
git commit -m "Update CI health $(date -u +%Y-%m-%dT%H:%M)" &&
git push
}