Files
PowerToys/.github/workflows/regenerate-devdocs-website.yml
Gleb Khmyznikov d2aa24786d [DOCS] Add auto-generated github page for dev docs (#48752)
This pull request introduces a new, automated workflow for building and
publishing the developer documentation website using
[docmd](https://docmd.io/). The static site is now generated from
`doc/devdocs`, built in the `doc/devdocs-website` folder, and deployed
to GitHub Pages via a GitHub Actions workflow. The build output is not
committed to the repository but is instead published as an artifact.
Supporting configuration files, documentation, and `.gitignore` entries
are also added to streamline local development and CI/CD.

**Automated build and deployment:**

* Added `.github/workflows/regenerate-devdocs-website.yml` to build the
static site with docmd and deploy it to GitHub Pages automatically on
changes to `doc/devdocs` or `doc/devdocs-website`, or via manual
trigger.

**Project setup and configuration:**

* Added `doc/devdocs-website/package.json` to define the Node.js
project, pin the docmd version, and provide scripts for local
development and builds.
* Added `doc/devdocs-website/docmd.config.json` to configure docmd (site
title, source, output directory, base path).
* Added `doc/devdocs-website/.npmrc` to disable lockfile generation,
ensuring fresh dependency installs each build.

**Documentation and housekeeping:**

* Added `doc/devdocs-website/README.md` with instructions for editing,
building, and publishing the docs website.
* Added `doc/devdocs-website/.gitignore` to exclude the generated
`site/` output from version control.
2026-06-19 15:59:12 -05:00

68 lines
1.8 KiB
YAML

# Builds the Dev Docs website from doc/devdocs with docmd and publishes it to GitHub Pages.
#
# The generated site is uploaded as a Pages artifact and deployed directly. It is never
# committed to the repo, so doc/devdocs-website/site stays untracked (see .gitignore).
#
# Requires GitHub Pages to be enabled with "Source: GitHub Actions" under the repository
# Settings -> Pages.
name: Publish Dev Docs Website
on:
push:
branches:
- main
paths:
- 'doc/devdocs/**'
- 'doc/devdocs-website/**'
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
# Allow only one Pages deployment at a time and let an in-progress deploy finish.
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
# Full history so docmd's git plugin can resolve per-page "last updated" dates.
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: latest
- name: Build static site with docmd
working-directory: doc/devdocs-website
# docmd is pinned in package.json; dependencies are installed fresh each run.
run: |
npm install
npm run build
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v5
with:
path: doc/devdocs-website/site
# v4+ excludes dotfiles by default; keep docmd's generated .nojekyll.
include-hidden-files: true
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5