Refactor gfx950 A16W16 GEMM to use the universal kernel #3282
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Documentation | |
| on: | |
| push: | |
| branches: | |
| - main # docs source lives on main | |
| - ci_dashboard # static dashboard source lives on the ci_dashboard branch | |
| pull_request: | |
| branches: | |
| - main | |
| # Keep one in-flight run per event type: a newer push supersedes an older one | |
| # (cancel-in-progress) so they can't race the gh-pages force-push. The group is | |
| # qualified by event_name + ref so a PR's build never cancels an in-progress | |
| # main/ci_dashboard deploy (only push events actually deploy; see the deploy | |
| # step's `if`), and pushes to main vs ci_dashboard don't cancel each other. | |
| concurrency: | |
| group: gh-pages-deploy-${{ github.event_name }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: write # push the built site to the gh-pages branch | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Build docs from the tree under test: the PR merge ref for pull_request, | |
| # the pushed commit for push-to-main. ONLY the ci_dashboard push needs to | |
| # be redirected to main (that branch holds dashboard assets, not docs | |
| # source) — otherwise a PR that breaks `make html` would never be caught | |
| # because we'd be building main instead of the PR. | |
| - name: Checkout docs source | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ (github.event_name == 'push' && github.ref_name == 'ci_dashboard') && 'main' || '' }} | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: Install documentation dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r docs/requirements.txt | |
| - name: Install FlyDSL (best effort) | |
| run: | | |
| pip install -e . 2>/dev/null || true | |
| - name: Build Sphinx documentation | |
| run: | | |
| cd docs | |
| make html | |
| # The static dashboard (html/js/css/vendor/png) is kept OFF main to keep | |
| # the repo lean; it lives on the ci_dashboard branch. Fetch it into the | |
| # /ci-dashboard subdir of the built site. | |
| - name: Add CI performance dashboard from ci_dashboard branch | |
| run: | | |
| set -euo pipefail | |
| # Materialise the ci_dashboard branch's .github/dashboard tree into a | |
| # scratch dir WITHOUT touching this (main) checkout's working tree or | |
| # index. `git archive` streams the subtree straight from the fetched | |
| # ref, so there is nothing to "restore" afterwards. | |
| rm -rf /tmp/dash && mkdir -p /tmp/dash | |
| git fetch --depth=1 origin ci_dashboard | |
| git archive FETCH_HEAD .github/dashboard | tar -x -C /tmp/dash | |
| rm -rf docs/_build/html/ci-dashboard | |
| mkdir -p docs/_build/html/ci-dashboard | |
| # Ship only the static site (drop ingest/, which is CI code, not web assets). | |
| cp -r /tmp/dash/.github/dashboard/. docs/_build/html/ci-dashboard/ | |
| rm -rf docs/_build/html/ci-dashboard/ingest | |
| # Fail loudly if the dashboard came out empty instead of silently | |
| # deploying a blank page (the static site must contain index.html). | |
| test -f docs/_build/html/ci-dashboard/index.html \ | |
| || { echo "::error::ci-dashboard is missing index.html — refusing to deploy an empty dashboard"; exit 1; } | |
| # The data JSON grows over time and is regenerated by ci-dashboard-ingest.yml | |
| # onto the ci-dashboard-data branch. Bundle the latest snapshot so the page | |
| # renders immediately; app.js still prefers the live data branch at runtime. | |
| - name: Bundle latest dashboard data (best effort) | |
| run: | | |
| set -uo pipefail | |
| mkdir -p docs/_build/html/ci-dashboard/data | |
| if git fetch --depth=1 origin ci-dashboard-data 2>/dev/null; then | |
| for f in history.json runs.json schema.md; do | |
| git show FETCH_HEAD:$f > "docs/_build/html/ci-dashboard/data/$f" 2>/dev/null || true | |
| done | |
| fi | |
| - name: Deploy to gh-pages branch | |
| if: github.event_name == 'push' | |
| run: | | |
| set -euo pipefail | |
| cd docs/_build/html | |
| touch .nojekyll | |
| git init -q | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git add -A | |
| git commit -qm "docs+dashboard: deploy $(date -u +%FT%TZ) [skip ci]" | |
| git push -f "https://x-access-token:${{ github.token }}@github.com/${{ github.repository }}.git" HEAD:gh-pages |