Skip to content

feat: CI/CD pipeline, containerized deployment to Civo K8s#1

Merged
Jesssullivan merged 5 commits intomasterfrom
feat/cicd-deployment
Feb 12, 2026
Merged

feat: CI/CD pipeline, containerized deployment to Civo K8s#1
Jesssullivan merged 5 commits intomasterfrom
feat/cicd-deployment

Conversation

@Jesssullivan
Copy link
Owner

Summary

  • Dockerfile: Multi-stage Node 22 Alpine build with dumb-init, non-root user, health checks
  • hooks.server.ts: Injects COOP/COEP headers on all responses for Futhark WASM multicore SharedArrayBuffer
  • /api/health: K8s liveness/readiness probe endpoint
  • GitHub Actions: 4 workflows replacing GitLab CI
    • verify.yml: Parallel 6-job CI matrix (typecheck, unit-tests, futhark-tests, theorem-verification, e2e-smoke, build)
    • build-image.yml: Docker build + push to GHCR on master push
    • deploy.yml: kubectl rollout to Civo K8s after image build
    • release.yml: Semver tag automation with GitHub Releases
  • k8s/: Namespace, Deployment, Service, Ingress, DNSEndpoint manifests for pixelwise.tinyland.dev
  • adapter-node: Switched from adapter-auto, output to dist/ (avoids Bazel build/ conflict)
  • README: Restored mathematical research content (ESDT, WCAG formulas) and updated command reference

Test plan

  • All 6 verify jobs pass in parallel
  • GHCR image builds after merge to master
  • kubectl get pods -n pixelwise shows Running after deploy
  • curl https://pixelwise.tinyland.dev/api/health returns 200
  • curl -I https://pixelwise.tinyland.dev shows COOP/COEP headers
  • Demo pages load with WebGPU/WASM backends

- Dockerfile: multi-stage Node 22 Alpine build with dumb-init
- hooks.server.ts: COOP/COEP headers for Futhark WASM multicore
- /api/health endpoint for K8s liveness/readiness probes
- verify.yml: parallel 6-job CI matrix (typecheck, unit, futhark, theorem, e2e, build)
- build-image.yml: Docker build + push to GHCR on master
- deploy.yml: kubectl rollout to Civo cluster after image build
- release.yml: semver tag automation with GitHub Releases
- k8s/: namespace, deployment, service, ingress, DNS manifests
- Switch adapter-auto to adapter-node (output to dist/)
- Remove .gitlab-ci.yml (CI moved to GitHub Actions)
@Jesssullivan Jesssullivan merged commit 6569ab6 into master Feb 12, 2026
5 of 6 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.

1 participant