Skip to content

Add GitHub Pages deploy for DDS Web - #306

Merged
tameware merged 2 commits into
dds-bridge:developfrom
tameware:web
Aug 10, 2026
Merged

Add GitHub Pages deploy for DDS Web#306
tameware merged 2 commits into
dds-bridge:developfrom
tameware:web

Conversation

@tameware

Copy link
Copy Markdown
Collaborator

Summary

  • Add a GitHub Actions workflow that builds DDS Web WASM and publishes it to GitHub Pages from develop.
  • Vendor coi-serviceworker.js and load it from dds_web.html so SharedArrayBuffer / pthread solves work on Pages (which cannot set COOP/COEP headers).
  • Add web/stage_github_pages.py plus tests/docs for staging the static site (index.html + assets).

Test plan

  • bazelisk test //web:dds_web_html_test //web:stage_github_pages_test //web:wasm_scripts_test
  • In a fork or after merge: set Pages source to GitHub Actions, run Deploy DDS Web to GitHub Pages, confirm https://<owner>.github.io/<repo>/ loads and a solve succeeds after the first-visit COI reload
  • Local: python3 web/serve_web.py still isolates without needing the service worker

Made with Cursor

tameware and others added 2 commits August 10, 2026 16:12
Pages cannot set COOP/COEP; vendor coi-serviceworker and a staging/deploy workflow so SharedArrayBuffer solves work on the published site.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

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.

Pull request overview

This PR adds a GitHub Pages deployment path for DDS Web (WASM) so the static site can run pthread solves on Pages by vendoring and loading coi-serviceworker.js to provide COOP/COEP via a service worker, plus a small staging script and tests/docs to support publishing.

Changes:

  • Add a GitHub Actions workflow to build DDS Web WASM on pushes to develop and deploy a staged _site directory to GitHub Pages.
  • Vendor web/coi-serviceworker.js and ensure dds_web.html loads it early (in <head>) for SharedArrayBuffer support on hosts without custom headers.
  • Add web/stage_github_pages.py and unit tests to stage a publishable directory (including index.html as a copy of dds_web.html), and document the workflow/usage.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
web/tests/web_site.py Includes coi-serviceworker.js in staged static assets used by web tests.
web/tests/test_web_html.py Adds checks that dds_web.html wires coi-serviceworker.js correctly and that the vendored script contains COI header strings.
web/tests/test_stage_github_pages.py Adds unit tests for the new GitHub Pages staging script.
web/stage_github_pages.py New staging utility to assemble a Pages-ready directory including index.html.
web/dds_web.html Loads coi-serviceworker.js from <head> and documents why it’s needed on Pages.
web/coi-serviceworker.js Vendored COOP/COEP service worker helper used to enable cross-origin isolation on Pages.
web/BUILD.bazel Wires the new/updated py_tests and includes coi-serviceworker.js in relevant test data and suites.
specs/web.md Updates web spec notes to mention Pages deployment and staging script.
docs/wasm_build.md Documents GitHub Pages constraints, the service worker approach, and the deploy workflow.
.github/workflows/deploy_pages.yml New workflow to build WASM, stage _site, upload as Pages artifact, and deploy.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@tameware
tameware requested a review from zzcgumn August 10, 2026 14:58
@tameware
tameware merged commit bfb5eb8 into dds-bridge:develop Aug 10, 2026
9 checks passed
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.

2 participants