Nasazení na Cloudflare Pages
Web je statický: hra, presety laboratoře, dokumentace jako HTML, data experimentů a tiskové PDF. Sestaví ho GitHub Actions (.github/workflows/pages.yml) a nahraje na Cloudflare Pages přes wrangler.
| Událost | Co se stane |
|---|---|
push do main |
testy, build s PDF, nasazení do produkce |
| pull request z tohoto repozitáře | totéž jako náhled; odkaz se objeví v komentáři u PR |
| pull request z forku | jen testy a build (fork nemá přístup k secrets) |
| ruční spuštění (Actions → Pages → Run workflow) | nasazení vybrané větve jako náhled, u main do produkce |
Bez nastavených secrets workflow web sestaví a přiloží jako artefakt site, ale nenasadí ho; v přehledu běhu je o tom upozornění.
Jednorázové nastavení
- Pages projekt. V Cloudflare dashboardu: Workers & Pages → Create → Pages → Upload assets (Direct Upload), název
coopgame, produkční větevmain. Nebo z terminálu:
Jiný název projektu nastavte jako proměnnou repozitáře:npx wrangler login npx wrangler pages project create coopgame --production-branch=maingh variable set CLOUDFLARE_PROJECT_NAME --body muj-nazev. - API token. My Profile → API Tokens → Create Token → Custom token, oprávnění Account → Cloudflare Pages → Edit, omezit na váš účet. Účet má Account ID na přehledu Workers & Pages (pravý panel).
- Secrets v GitHubu:
gh secret set CLOUDFLARE_API_TOKEN # vložte token gh secret set CLOUDFLARE_ACCOUNT_ID # vložte Account ID - Push do
mainnebo Run workflow. Produkční adresa jehttps://coopgame.pages.dev(podle názvu projektu), náhledyhttps://<větev>.coopgame.pages.dev. Vlastní doménu přidáte v nastavení projektu v Cloudflare.
Lokálně
npm run build # dist/: hra, dokumentace, data, _headers, _redirects
npm run build:pdf # dist/print/*.pdf, potřebuje Python s reportlab (PYTHON=… a FONT=… volitelně)
npm run preview # servíruje dist/ na http://localhost:5173
_headers nastavuje přísnou Content-Security-Policy (jen vlastní skripty, styly a worker), nosniff a krátkou cache modulů, protože soubory nemají v názvu hash. _redirects přesměruje starou adresu /tabletop.html na /. Build sám ověří, že v dist/ je každý modul, který stránka a worker importují; test test/build.test.js hlídá, že do webu neunikne nic mimo hru (testy, skripty, node_modules, zdrojové .md).