Skip to content

fix(panel): key the verdict cache by the full review request (P4) #698

fix(panel): key the verdict cache by the full review request (P4)

fix(panel): key the verdict cache by the full review request (P4) #698

Workflow file for this run

name: docs-linkcheck
# Builds the tsforge docs site and runs lychee against the built output.
# Internal broken links fail the job; external 4xx/5xx are warnings only.
on:
push:
branches: [main]
paths:
- "apps/docs/**"
- "packages/core/RULES.md"
- "bun.lock"
- ".github/workflows/docs-linkcheck.yml"
pull_request: {}
workflow_dispatch:
permissions:
contents: read
concurrency:
group: docs-linkcheck-${{ github.ref }}
cancel-in-progress: true
jobs:
linkcheck:
defaults:
run:
working-directory: apps/docs
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Detect docs changes
uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
id: filter
with:
filters: |
docs:
- 'apps/docs/**'
- 'packages/core/RULES.md'
- 'bun.lock'
- '.github/workflows/docs-linkcheck.yml'
- name: No-op notice for unaffected PRs
if: steps.filter.outputs.docs != 'true'
run: echo "No docs files changed in this PR — skipped."
- name: Set up Bun
if: steps.filter.outputs.docs == 'true'
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.3.14
- name: Cache bun install
if: steps.filter.outputs.docs == 'true'
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.bun/install/cache
key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
restore-keys: |
bun-${{ runner.os }}-
- name: Install dependencies
if: steps.filter.outputs.docs == 'true'
working-directory: ${{ github.workspace }}
run: bun install --frozen-lockfile
- name: Build docs site
if: steps.filter.outputs.docs == 'true'
run: bun run build:ci
- name: Internal link check (fail on broken)
if: steps.filter.outputs.docs == 'true'
uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0
with:
args: >-
--no-progress
--offline
--root-dir ${{ github.workspace }}/apps/docs/dist
'${{ github.workspace }}/apps/docs/dist/**/*.html'
fail: true
- name: External link check (warning only)
if: steps.filter.outputs.docs == 'true'
uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0
continue-on-error: true
with:
args: >-
--no-progress
--max-retries 0
--root-dir ${{ github.workspace }}/apps/docs/dist
--exclude '^https?://(localhost|127\.0\.0\.1|.*\.localhost)'
--exclude 'github\.com/agjs/tsforge'
'${{ github.workspace }}/apps/docs/dist/**/*.html'
fail: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}