|
@@ -1,17 +1,16 @@
|
|
|
|
|
+# Publish the documentation website to GitHub Pages. This workflow is manual-only
|
|
|
|
|
+# (workflow_dispatch) and intentionally does not listen to pull_request or push:
|
|
|
|
|
+# the site presents a released snapshot, so publication is an explicit act from a
|
|
|
|
|
+# dsh-v* tag and must never appear as a PR check. `release:verify` rejects every
|
|
|
|
|
+# other ref, and the github-pages environment repeats that restriction as a
|
|
|
|
|
+# deployment tag policy with required reviewers.
|
|
|
|
|
+#
|
|
|
|
|
+# The build signal does not depend on this workflow. Every pull request builds
|
|
|
|
|
+# the production site through `check:ci:static`, and ci-master.yml builds it
|
|
|
|
|
+# again on master.
|
|
|
name: Deploy documentation
|
|
name: Deploy documentation
|
|
|
|
|
|
|
|
on:
|
|
on:
|
|
|
- push:
|
|
|
|
|
- branches: [master]
|
|
|
|
|
- paths:
|
|
|
|
|
- - '.github/workflows/docs-pages.yml'
|
|
|
|
|
- - 'docs/**'
|
|
|
|
|
- - 'package.json'
|
|
|
|
|
- - 'pnpm-lock.yaml'
|
|
|
|
|
- - 'pnpm-workspace.yaml'
|
|
|
|
|
- - 'scripts/project-doc-site.ts'
|
|
|
|
|
- - 'scripts/project-doc-site.spec.ts'
|
|
|
|
|
- - 'website/**'
|
|
|
|
|
workflow_dispatch:
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
concurrency:
|
|
concurrency:
|
|
@@ -24,7 +23,11 @@ permissions:
|
|
|
env:
|
|
env:
|
|
|
PRIMARY_NODE_VERSION: '24'
|
|
PRIMARY_NODE_VERSION: '24'
|
|
|
# Projected source links target the public repository, whose history can
|
|
# Projected source links target the public repository, whose history can
|
|
|
- # differ from this workflow's source repository.
|
|
|
|
|
|
|
+ # differ from this workflow's source repository. This stays on master rather
|
|
|
|
|
+ # than following the dispatched tag: that repository advances only to each
|
|
|
|
|
+ # release commit, so its master never carries unreleased work, and it retains
|
|
|
|
|
+ # only the most recent tags — following the tag would leave every projected
|
|
|
|
|
+ # source link on an older deploy unresolvable.
|
|
|
DOCS_REPOSITORY_REF: master
|
|
DOCS_REPOSITORY_REF: master
|
|
|
# CI runs must never report to the production telemetry endpoint baked
|
|
# CI runs must never report to the production telemetry endpoint baked
|
|
|
# into apps/cli/cordis.yml (AppCLIEntry disables the row when set).
|
|
# into apps/cli/cordis.yml (AppCLIEntry disables the row when set).
|
|
@@ -37,7 +40,11 @@ jobs:
|
|
|
contents: read
|
|
contents: read
|
|
|
pages: read
|
|
pages: read
|
|
|
steps:
|
|
steps:
|
|
|
|
|
+ # Complete history: the release scripts read tags.
|
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/checkout@v6
|
|
|
|
|
+ with:
|
|
|
|
|
+ fetch-depth: 0
|
|
|
|
|
+ persist-credentials: false
|
|
|
|
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
- uses: pnpm/action-setup@v4
|
|
|
|
|
|
|
@@ -49,6 +56,14 @@ jobs:
|
|
|
- name: Install (immutable)
|
|
- name: Install (immutable)
|
|
|
run: pnpm install --frozen-lockfile
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
|
|
|
|
|
|
+ # One definition of "released" for the site and the npm sequence: this
|
|
|
|
|
+ # rejects every ref that is not a dsh-v* tag naming the version this tree
|
|
|
|
|
+ # carries.
|
|
|
|
|
+ - name: Verify release version
|
|
|
|
|
+ env:
|
|
|
|
|
+ RELEASE_PUBLISH: 'true'
|
|
|
|
|
+ run: pnpm run release:verify --family dsh
|
|
|
|
|
+
|
|
|
- name: Configure Pages
|
|
- name: Configure Pages
|
|
|
id: pages
|
|
id: pages
|
|
|
uses: actions/configure-pages@v6
|
|
uses: actions/configure-pages@v6
|