progrista ci/cd.

CI/CD
Pipelines.

Every Progrista repo builds, checks, releases and deploys with the same reusable workflows, pinned to one tag.

Change a pipeline once, move v1, and every repo runs it on its next push.

Architecture

One repo holds every pipeline. App repos keep only small caller files that point at @v1.
Shared repoReusable workflows · on: workflow_callprogrista-cicdcallers pin @v1node-ci.ymllint · types · test · openapi drift · buildpython-ci.ymlruff · pyright · pytest · alembicdocker-publish.ymlbuild · smoke · Trivy · pushkamal-deploy.ymlTailscale · kamal deployrelease-bump.ymlpublish · release · bumppages-deploy.ymlbuild · GitHub Pages
Point at or tab to a box to see what it does.

Release flow

Read it left to right: work lands on a branch, passes CI, merges into main, and the release jobs take over. The same in every repo.
1 · Branches2 · CI checks3 · Merge, release & deployPRall greenPR mergethenfeature/**devnext minor versionhotfixnext patch versiondependabot/*ci / checksformat · lint · types · testsci / buildevery runmainproductiondeploy-pages.ymlsite → GitHub Pagesstatic sitesdocker-publish.ymlsmoke · Trivy → ghcr.iocontainer appsrelease-bump.ymlnpm publish · GitHub releaseevery repodev +minorhotfix +patch
Point at or tab to a box to see what it does.

Environments

Code moves through three stages: your machine, staging, production. Each step only happens after the one before it worked.
1 · Local2 · Staging3 · Productionpushmergedeployreleaseapproveyour machinehot reload · containerspull requestCI checks · image scandev imagebuilt · scanned · pushedstagingdeployed automaticallyreleaseversioned imageproductionafter approval
Point at or tab to a box to see what it does.
  • Branches
  • CI
  • Release
  • Sync
  • Shared
WorkflowWhat it runs
node-ci.ymlChecks for TypeScript projects: lint, types, tests, end-to-end, build
python-ci.ymlChecks for Python projects: lint, types, tests, migrations
docker-publish.ymlBuilds, smoke-tests and scans the image, then publishes it
kamal-deploy.ymlDeploys a published image to staging or production
release-bump.ymlCreates the release and moves dev and hotfix to their next versions
pages-deploy.ymlBuilds a static site and publishes it