Skip to content
86 changes: 34 additions & 52 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ on:
pull_request:
paths:
- 'docs/**'
# A change to this workflow should be exercised by this workflow.
- '.github/workflows/docs.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
# Only the newest push to a pull request is worth previewing. Pushes to main are never
# cancelled, so a publish cannot be interrupted by the next docs merge.
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
Comment thread
ppawlowski marked this conversation as resolved.

jobs:
test:
runs-on: ubuntu-latest
Expand All @@ -22,62 +31,35 @@ jobs:
run: npm ci
- name: Test Documentation Links
run: npm run test:docs
test-with-website:
runs-on: ubuntu-latest
name: Test Documentation with website
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
path: 'flowfuse'
- name: Check out website repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: 'FlowFuse/website'
path: 'website'
- name: Generate a token
id: generate_token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
app-id: ${{ secrets.GH_BOT_APP_ID }}
private-key: ${{ secrets.GH_BOT_APP_KEY }}
owner: ${{ github.repository_owner }}
repositories: blueprint-library
- name: Check out FlowFuse/blueprint-library repository (to access the blueprints)
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: 'FlowFuse/blueprint-library'
ref: main
path: 'blueprint-library'
token: ${{ steps.generate_token.outputs.token }}
- name: Cache image pipeline output
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: img-pipeline-cache
path: website/_site/img
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'npm'
cache-dependency-path: './website/package-lock.json'
- run: npm run docs
working-directory: 'website'
- run: npm run blueprints
working-directory: 'website'
- name: Install Dependencies
run: npm install
working-directory: 'website'
- name: Build the forge
run: npm run build:nuxt:skip-images
working-directory: 'website'
- uses: untitaker/hyperlink@9375bc4063712ad490d5eb3d54df0b6aade15e54 # 0.3.2
with:
args: website/nuxt/dist/ --check-anchors --sources website/src
# The build lives in FlowFuse/github-actions-workflows so this repository does not carry a
# second copy of it, and FlowFuse/website's own CI calls the same definition. The release
# job there moves build_website/v1 on each release, so build changes are picked up here.
website:
name: Build the website with these docs
permissions:
contents: read
deployments: write
pull-requests: write
uses: FlowFuse/github-actions-workflows/.github/workflows/build_website.yml@build_website/v1
with:
docs_repository: ${{ github.repository }}
docs_ref: ${{ github.sha }}
# Pull requests from forks receive no secrets, so they get the build and the link
# check without an upload.
deploy_preview: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository }}
preview_alias: docs-pr-${{ github.event.pull_request.number }}
pr_number: ${{ github.event.pull_request.number || 0 }}
secrets:
ci_app_id: ${{ secrets.GH_BOT_APP_ID }}
ci_app_key: ${{ secrets.GH_BOT_APP_KEY }}
netlify_auth_token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
netlify_site_id: ${{ secrets.NETLIFY_SITE_ID }}
publish:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- test
- test-with-website
- website
name: Publish Documentation
steps:
- name: Generate token
Expand All @@ -88,7 +70,7 @@ jobs:
private-key: ${{ secrets.GH_BOT_APP_KEY }}
owner: ${{ github.repository_owner }}
repositories: website

- name: Trigger website rebuild
uses: benc-uk/workflow-dispatch@31e2b3319479a63f0ab15bf800eff9e913504e26 # v1.3.2
with:
Expand Down
Loading