ci(publish): deploy the docs site with surfer 7 and an app password #25

Merged
allan merged 1 commits from ci/surfer-app-password into main 2026-10-28 00:42:13 +00:00
Collaborator

The publish job installed cloudron-surfer@6.4.1 and uploaded with --token; the current major (7.x) takes a Cloudron username plus an app password instead. Same shape as the fix on the site repo (dc/datacontroller.io#30).

  • @cloudron/surfer@7.2.0, pinned exactly, keeping the repo's existing rule that deploy tooling is never latest.
  • Auth: user allan, password from the SURFER_PASSWORD secret.
  • The docs are a named site (docs) on its own alias domain, so --site-name docs --domain docs.datacontroller.io are passed; only the app's default site takes no site flags.
  • deploy instead of put: atomic swap, so a failed upload leaves the current site serving, and the deploy message records the ref and short SHA in the site history.
  • Adds workflow_dispatch so the site can be republished by hand (useful while the release is being staged), and a concurrency group so two deploys cannot race.

Worth knowing: the live site is currently stale - https://docs.datacontroller.io/derived-variables/ and /img/derived-grid.png both 404 even though main has the page and the images (dc/datacontroller.io#24 merged). Once the SURFER_PASSWORD secret holds a working app password for the docs app, a dispatch of this workflow republishes it.

Verification so far: @cloudron/surfer@7.2.0 deploy --help confirms the flags used. The end-to-end run on the sibling repo reached Surfer and was refused with Invalid username or password, so the remaining variable is the secret's value, not the workflow.

The publish job installed `cloudron-surfer@6.4.1` and uploaded with `--token`; the current major (7.x) takes a Cloudron username plus an app password instead. Same shape as the fix on the site repo (dc/datacontroller.io#30). - `@cloudron/surfer@7.2.0`, pinned exactly, keeping the repo's existing rule that deploy tooling is never `latest`. - Auth: user `allan`, password from the `SURFER_PASSWORD` secret. - The docs are a **named** site (`docs`) on its own alias domain, so `--site-name docs --domain docs.datacontroller.io` are passed; only the app's default site takes no site flags. - `deploy` instead of `put`: atomic swap, so a failed upload leaves the current site serving, and the deploy message records the ref and short SHA in the site history. - Adds `workflow_dispatch` so the site can be republished by hand (useful while the release is being staged), and a concurrency group so two deploys cannot race. Worth knowing: the live site is currently stale - `https://docs.datacontroller.io/derived-variables/` and `/img/derived-grid.png` both 404 even though `main` has the page and the images (dc/datacontroller.io#24 merged). Once the `SURFER_PASSWORD` secret holds a working app password for the docs app, a dispatch of this workflow republishes it. Verification so far: `@cloudron/surfer@7.2.0 deploy --help` confirms the flags used. The end-to-end run on the sibling repo reached Surfer and was refused with `Invalid username or password`, so the remaining variable is the secret's value, not the workflow.
hermes added 1 commit 2026-10-28 00:40:48 +00:00
The publish job installed cloudron-surfer 6.4.1 and uploaded with a token; the
current major takes a Cloudron username plus an app password instead.  Pin
@cloudron/surfer 7.2.0, user allan, password from SURFER_PASSWORD.

`deploy` rather than `put`: it swaps the site atomically, so a failed upload
leaves the current site serving, and it records the ref and commit in the site's
deploy history.  The docs are a named site (`docs`) on its own alias domain, so
both are passed.

Also adds workflow_dispatch, so a deploy can be run by hand.
allan merged commit c5b5acbcbc into main 2026-10-28 00:42:13 +00:00
allan deleted branch ci/surfer-app-password 2026-10-28 00:42:13 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dc/docs.datacontroller.io#25