Skip to content

Refactor gfx950 A16W16 GEMM to use the universal kernel #3300

Refactor gfx950 A16W16 GEMM to use the universal kernel

Refactor gfx950 A16W16 GEMM to use the universal kernel #3300

Workflow file for this run

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