Skip to content

Preview the website on documentation pull requests - #8070

Open
dimitrieh wants to merge 8 commits into
mainfrom
docs-website-preview
Open

Preview the website on documentation pull requests#8070
dimitrieh wants to merge 8 commits into
mainfrom
docs-website-preview

Conversation

@dimitrieh

@dimitrieh dimitrieh commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Contributes to Website preview on documentation pull requests.

Replaces the copy of the website build in docs.yml with a call to build_website/v1 in FlowFuse/github-actions-workflows, and uploads the result to Netlify under a docs-pr-<number> alias so documentation pull requests get a preview URL.

The deploy is aliased and unpublished, so netlify.toml's build command never runs against it and flowfuse.com keeps serving what it served before. Fork pull requests receive no secrets, so they build and link-check without uploading.

Draft until:

  • NETLIFY_AUTH_TOKEN and NETLIFY_SITE_ID are available to this repository
  • main's required checks name Build the website with these docs / Build and check in place of Test Documentation with website

test-with-website already checked out FlowFuse/website next to this repository
and built the whole site with the pull request's docs, because docs-sync.mjs
prefers a sibling checkout over cloning main. It then threw the output away
after the link check.

That build is now FlowFuse/website's site-preview.yml, called from here, so
this repository stops carrying a second copy of the website pipeline and picks
up changes to it as the Nuxt migration progresses. When the caller is a pull
request from a branch in this repository it also uploads the result to Netlify
under a docs-pr-<number> alias and reports the URL on the pull request.

The upload is an aliased, unpublished deploy: no --prod, and no --build, so
netlify.toml's build command (which reindexes Algolia) never runs against a
preview and flowfuse.com keeps serving whatever it served before.

test-with-website survives as a gate job so the check name and the publish
dependency are unchanged.
Without this the pull request that changes docs.yml does not trigger it, so the
build and the preview upload go unverified.
@dimitrieh

Copy link
Copy Markdown
Contributor Author

@dimitrieh

Copy link
Copy Markdown
Contributor Author

site-preview.yml no longer exists on FlowFuse/website. The definition moved to
FlowFuse/github-actions-workflows as build_website.yml, so the old reference
resolved to nothing. The inputs and secrets are unchanged, only the ref moves.
Comment thread .github/workflows/docs.yml Outdated
netlify_site_id: ${{ secrets.NETLIFY_SITE_ID }}
# A reusable workflow reports its checks as "caller job / called job". This gate keeps the
# original context name and the publish dependency below intact.
test-with-website:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of the test-with-website job now?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It keeps the Test Documentation with website check name reporting. A reusable workflow reports as "caller job / called job", so the build shows up as Build the website with these docs / Build and check and the old context stops existing. The required context on main would then be a name nothing publishes, and publish's needs would break too.

The alternative is to update the required contexts on main and point publish at needs: website, and then this job can go. Both would have to land together.

I'd keep it: one job, a few seconds, and no ruleset change tied to the merge. Let me know if you see it differently, you have the view on the protection settings that I don't.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove it and adjust the job's dependency - we do not need to spin another runner just to report the status of a previous job.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed, and publish now needs website directly. Default needs semantics already stop publish on a failed or skipped build, so the gate's always() plus result check was only ever buying the name.

That name goes with it: the build reports as Build the website with these docs / Build and check and Test Documentation with website stops existing. If the old context is still in main's required checks it has to be swapped before this merges, otherwise main waits on a context nothing publishes. I cannot read the protection settings, so that part is on your side.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ppawlowski can you check this?

Comment thread .github/workflows/docs.yml
@dimitrieh

dimitrieh commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

The gate existed only to keep publishing the old check name. A reusable
workflow reports as "caller job / called job", so the website build now
reports as "Build the website with these docs / Build and check" and
publish depends on it directly.
@ZJvandeWeg

Copy link
Copy Markdown
Member

@dimitrieh Seems convoluted, shouldn't we just move the docs to the website repo?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants