f9086bd2ca
Generate documentation / build-docs (push) Successful in 5m27s
- Eliminate the warning about the generic 404 page being replaced, it was intentional. - Add a flag to the cloudflare deploy task to approve pushes from dirty git repos, it was intentional for the dynamic build.
83 lines
2.5 KiB
YAML
83 lines
2.5 KiB
YAML
name: Generate documentation
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- "docs/manual/**"
|
|
- "docs/build-manual.py"
|
|
- "docs/manualtools.py"
|
|
- "docs/verify-manual.py"
|
|
- "docs/site/**"
|
|
- "functions/**"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-docs:
|
|
runs-on: racknerd-mini
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GITEA_TOKEN }}
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -y pandoc python3-yaml
|
|
|
|
- name: Generate concatenated markdown
|
|
run: python3 docs/build-manual.py --concat -o docs/fish-config.md
|
|
|
|
# Regeneration MUST run before verification: verify-manual.py's
|
|
# test_concat_roundtrips_original compares a freshly-built concat
|
|
# against docs/fish-config.md on disk. Before this step ran, that
|
|
# file was still the stale pre-push copy, so any ordinary edit under
|
|
# docs/manual/** failed the round-trip check before anything was
|
|
# regenerated. Do not reorder this back — verification still gates
|
|
# pandoc and the auto-commit below, it just no longer requires a
|
|
# contributor to hand-sync the generated file before pushing.
|
|
- name: Verify manual integrity
|
|
run: python3 docs/verify-manual.py
|
|
|
|
- name: Compile man page
|
|
run: |
|
|
pandoc --standalone \
|
|
--from markdown \
|
|
--to man \
|
|
docs/fish-config.md \
|
|
-o docs/fish-config.1
|
|
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "24"
|
|
|
|
- name: Build documentation site
|
|
run: |
|
|
python3 docs/build-manual.py --site
|
|
cd docs/site
|
|
npm ci
|
|
npx astro build
|
|
|
|
- name: Deploy to Cloudflare Pages
|
|
env:
|
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }}
|
|
run: |
|
|
cd docs/site
|
|
npx --yes wrangler pages deploy dist/ \
|
|
--project-name=fish-config-docs \
|
|
--branch=main \
|
|
--commit-dirty=true
|
|
|
|
- name: Commit generated docs
|
|
run: |
|
|
git config user.name "Gitea Actions"
|
|
git config user.email "actions@gitea"
|
|
git add docs/fish-config.md docs/fish-config.1
|
|
git diff --cached --quiet && echo "No changes to commit" && exit 0
|
|
git commit -m "chore(docs): regenerate manual and man page"
|
|
git push
|