Skip to content

ci: auto-deploy pipeline for the dev branch (build → smoke test → deploy to cluster container) - #28

Draft
jlocala1 wants to merge 4 commits into
mieweb:mainfrom
jlocala1:ci/dev-deploy-pipeline
Draft

ci: auto-deploy pipeline for the dev branch (build → smoke test → deploy to cluster container)#28
jlocala1 wants to merge 4 commits into
mieweb:mainfrom
jlocala1:ci/dev-deploy-pipeline

Conversation

@jlocala1

Copy link
Copy Markdown

DRAFT — becomes active once a dev branch exists on this repo.

This is the pipeline behind the live dev instance at https://pulseclip-dev2.os.mieweb.org (Doug's "GitHub action on container on dev branch" ask, built 07-24). On every push to dev:

  1. Build ui submodule + server + client (same steps as ci.yml; ui build cached on the submodule SHA — runs are ~1.5 min on a cache hit, ~4–8 on a rebuild)
  2. Package a runtime-only release tarball (~350KB)
  3. Smoke-test the tarball itself in CI: clean unpack, prod-deps install, boot, healthcheck
  4. Deliver over SSH to the cluster container and install via scripts/deploy/release.sh — versioned releases, shared state (artipods/.env) survives deploys, healthcheck with automatic rollback to the previous release
  5. Verify the public URL

Currently running from my fork's dev (which carries #24/#25/#26 + #20 for content). To adopt on this repo: create dev, add the four DEPLOY_* Actions secrets, merge this.

jlocala1 added 4 commits July 24, 2026 19:51
Clones main ci.yml's build steps (Node 22, corepack pnpm, ui submodule),
then tars a runtime-only release (server/dist, client/dist, manifests),
unpacks it clean, installs server prod deps, boots, and curls
/api/providers. Delivery step lands once the cluster container is up.
…rollback)

Unpacks a deploy-dev.yml tarball into releases/<name>/, wires shared
state (artipods, .env), installs server prod deps, flips current, and
healthchecks — rolling back to the previous release on failure. Keeps
the two newest releases. Rehearsed locally against the real CI artifact:
deploy and rollback paths both verified.
scp the tarball + release.sh over SSH (deploy key in repo secrets) and
run the install on the box; a final curl verifies the public URL. The
box-side script keeps its own healthcheck + auto-rollback.
The ui build is ~6 of the ~8 run minutes but only changes when the
gitlink moves; on a cache hit the install+build steps are skipped.
@jlocala1
jlocala1 force-pushed the ci/dev-deploy-pipeline branch from cb769a2 to 42c4131 Compare August 3, 2026 20:34
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