codediff 0.0.11

Fast, robust, syntax-aware code diffing using tree-sitter ASTs
Documentation
name: Publish human mapping site

# Builds and deploys the read-only human_mapping.json viewer (generate_mapping_site) to GitHub
# Pages on every push to main - both halves of that file: the node mapping, as two annotated ASTs
# and as code, and every hand-painted account of the same diff as text, stacked in the code view
# for the reader to flip between. Nothing this workflow generates is committed to the repo - the
# HTML/CSS/JS is built fresh from src/test/data/diffs/ each run. Requires Pages to be enabled once
# in this repo's Settings -> Pages, with source set to "GitHub Actions" (a one-time manual step,
# not something a workflow file can do on its own).

on:
  push:
    branches: [main]
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

# Only one Pages deployment at a time; a newer push should win over one still in flight rather
# than queue behind it.
concurrency:
  group: pages
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7

      - uses: dtolnay/rust-toolchain@stable

      - uses: Swatinem/rust-cache@v2
        with:
          key: pages

      - name: Generate site
        run: cargo run --release --features test-fixtures --bin generate_mapping_site -- --out site

      - uses: actions/configure-pages@v6

      # v4 dropped dotfiles from the artifact. `generate_mapping_site` wipes and recreates its
      # output directory holding only index.html, fixtures/ and assets/ - no dotfiles, and Pages
      # deployed from an Actions artifact never runs Jekyll, so no .nojekyll is needed either. If
      # the generator ever starts emitting one, this action will silently drop it.
      - uses: actions/upload-pages-artifact@v5
        with:
          path: site

  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - id: deployment
        uses: actions/deploy-pages@v5