Skip to content

CI/CD hooks

Built. Every Jive package defines six scripts in its package.json, and Jive’s shared GitHub Actions pipeline runs them. Nobody writes Actions YAML for a package; extending an abstract supplies all six.

Hook Runs in Does
jive:cicd:get-config context job Prints the package’s jive block as JSON on stdout
jive:cicd:build build job Builds
jive:cicd:audit build job Typechecks and tests
jive:cicd:deploy:plan build job, once per environment Prints {"deploy":false}, or {"deploy":true,"url":"…"}
jive:cicd:upload-artifacts build job Hands the build output to the deploy job
jive:cicd:deploy deploy job, once per environment Deploys, after jive login --cicd and jive provision for what it deploys to

Each hook runs as bun run <name> with no arguments. Two variables carry its inputs: JIVE_PIPELINE_CONTEXT (JSON describing the run) and JIVE_DEPLOY_ENVIRONMENT (the target’s name). Anything else the two stdout-parsed hooks print goes to stderr.

The full contract is CICD_API.md in the jive repository; this page summarizes it.

Decided (Alex, 2026-11-01): “We have a deploy hook in CI. That should do a jive login --cicd then jive provision for a given resource”. Built today as packages:provision for npm packages only (Provisioning).