Skip to content

build: migrate production deployment to Void - #20

Merged
0froq merged 9 commits into
mainfrom
build/void-vp-cutover
Oct 19, 2026
Merged

0froq merged 9 commits into
mainfrom
build/void-vp-cutover

Conversation

@0froq

@0froq 0froq commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Keep the existing Cloudflare GitHub connection for production and stable native branch previews.
  • Make Void the canonical production configuration and local deployment entry.
  • Remove the unused GitHub Actions production workflow. Actions only runs lint, format, test and type checks.
  • Use Node 24.21.0 and Vite+ Vitest for all 48 non-UI tests.
  • Replace application ESLint with Oxlint and Oxfmt. The formatting baseline is a separate commit, with vendored UI, MDC and generated files excluded.

Validation

  • 48 Vitest tests, 12 Python tests, TypeScript and generated-artifact checks pass locally.
  • Nuxt static generation passes with 80 prerendered routes.
  • Oxlint, Oxfmt, actionlint and frozen-lockfile installation pass.
  • Source review verified equivalent ASTs for 121 scripts and 50 compiled templates.
  • Native branch preview was verified with curl for homepage, localized/nested routes, downloads and 404.

Cutover status

  • Workers Builds production and preview runtimes are Node 24.21.0.
  • A temporary read-only Void authentication probe is being run on this PR preview using managed build credentials.
  • Production still uses cf deploy. It has not been changed or redeployed by this work.
  • After authentication verification and explicit approval to merge, change only the production deploy command to pnpm exec void deploy --platform cloudflare --dir dist.
  • This PR has not been merged. No separate GitHub deployment token is requested at this stage.

No browser UI tests were run. Review SVG labels, neutral color selection/copy and inline spacing manually. See docs/void-viteplus.md for the cutover and rollback checklist.

@0froq

0froq commented Oct 19, 2026

Copy link
Copy Markdown
Owner Author

Preview is live: https://build-void-vp-cutover-lig.sayhola.workers.dev

Validation update for d6046b1:

  • All reported GitHub checks and the native Cloudflare preview build pass.
  • curl verified 200 for /, /zh, /docs/neovim and /ports/manifest.json, and 404 for an unknown path.
  • Fixed clean-CI test transformation by selecting core/tsconfig.json explicitly. Core and port tests also pass in an archived checkout without .nuxt.
  • Workers Builds production and preview Node versions are now 24.21.0.

Production cutover is still blocked on the GitHub CLOUDFLARE_API_TOKEN secret. VOID_DEPLOY_ENABLED remains unset and the existing production trigger remains active. This PR has not been merged.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅

View logs ↗
No Preview URL. Enable ↗ 3b7d56d 2026-10-19T17:43:41.565Z View logs ↗
  • Build: Failed ❌

View logs ↗
24b8c07 2026-10-19T17:35:06.770Z View logs ↗
  • Build: Success ✅

View logs ↗
No Preview URL. Enable ↗ 9177eee 2026-10-19T17:22:21.021Z View logs ↗
  • Build: Success ✅

View logs ↗
No Preview URL. Enable ↗ d6046b1 2026-10-19T16:52:55.176Z View logs ↗

0froq and others added 4 commits October 20, 2026 01:20
@0froq

0froq commented Oct 19, 2026

Copy link
Copy Markdown
Owner Author

Workers Builds credential verification is complete for availability and read-only access:

  • CLOUDFLARE_API_TOKEN is present in the fresh preview runner. Only presence booleans were logged.
  • cf reports authenticated=true and tokenValid=true using that environment variable.
  • Read-only access to the existing lig Worker succeeds.
  • The native preview deployment also succeeds.

Void 1.1.12 cloudflare status separately reported Not signed in. That diagnostic does not establish that the injected token is absent. Full Void upload/readiness/activation still needs a controlled production attempt after explicit landing and deployment approval.

The temporary preview diagnostic command has been removed and the normal cf previews deploy command read back successfully. Production settings are unchanged. No new manually supplied token is requested.

The unused Actions production workflow was removed. Actions now runs code and application type checks only. The Cloudflare GitHub connection remains the sole automatic deployment system.

@0froq
0froq merged commit 3b7d56d into main Oct 19, 2026
6 checks passed
@0froq

0froq commented Oct 19, 2026

Copy link
Copy Markdown
Owner Author

Production cutover result: rolled back after acceptance failure.

The PR was fast-forwarded to main at 3b7d56d. All main-branch GitHub checks passed. The existing cf production build completed successfully before the trial.

Void production build 6a277366-a634-4acc-bd69-99ff99d0b01d successfully uploaded, verified and activated a Worker using Workers Builds managed credentials. No additional token or GitHub secret was needed.

Acceptance found a routing regression:

  • cf version e832a439-d66f-4f30-a78c-a9da0d3118d8: /docs/neovim/ returns 307 to /docs/neovim.
  • Void version 7eab9ab1-6a35-4ad2-9879-399f54e6ab85: the same path returns 200.
  • Version metadata confirms cf assets use html_handling=drop-trailing-slash, while the Void upload uses auto-trailing-slash despite the authored config.
  • The installed @void/deploy-cloudflare 1.1.12 static config writer defaults that setting to auto-trailing-slash.

Recovery completed:

  • Restored production command pnpm exec cf deploy.
  • Activated version e832a439-d66f-4f30-a78c-a9da0d3118d8 at 100 percent, deployment 83b5f0f1-7304-4df8-bfab-ce4a5955c2de.
  • Removed the temporary readiness subdomain build variable.
  • Kept Node 24.21.0, the GitHub connection, automatic production builds and native branch previews.
  • curl verifies production homepage, /zh, /docs/neovim and downloads return 200, missing paths return 404, trailing slash returns the original 307, and branch preview returns 200.

Do not retry Void production publishing via pnpm deploy or void deploy until the static asset-policy override is fixed or a supported release preserves the configured policy. No redirect shim or dependency patch was added.

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.

1 participant