Skip to main content
Version: 4.0.0-preview

CI/CD

Generate, list, and validate CI/CD pipelines for six platforms.

expressots cicd <action> [platform] [options]
# aliases
expressots ci ...
expressots pipeline ...

Actions

ActionPurpose
initInteractive setup. Asks for platform, strategy, deploy target, etc.
generateNon-interactive generation for a specific platform.
listShow every supported platform and strategy.
validateLint an existing pipeline file against the official template.

Platforms

PlatformGenerated file(s)
github.github/workflows/ci.yml (+ optional release / deploy jobs)
gitlab.gitlab-ci.yml
circleci.circleci/config.yml
jenkinsJenkinsfile
bitbucketbitbucket-pipelines.yml
azureazure-pipelines.yml
allGenerate every platform in one pass.

Strategies

StrategyWhat it includes
basicInstall → Lint → Test → Build.
comprehensive(default) Adds matrix Node versions, coverage upload, Docker build, and a publish stage.
security-focusedAdds Trivy image scan, npm audit --audit-level=high, secret scanning, SBOM upload.

Options

OptionAliasDefaultDescription
--strategy-scomprehensiveOne of the strategies above.
--include-securitytrueAdd security scan jobs (Trivy, npm audit).
--include-e2efalseAdd an E2E test stage.
--include-coveragetrueUpload coverage reports (codecov / coveralls).
--docker-registry-r(none)Image registry URL for the publish stage (e.g. ghcr.io/acme).
--deploy-targetnonekubernetes / ecs / cloudrun / railway / render / fly / none.
--branch-bmainBranch that triggers the pipeline.
--node-version20Node version used in CI.
--output-dir-oplatform defaultOverride the directory the pipeline file lands in.

Examples

# Interactive
expressots cicd init

# Generate a GitHub Actions pipeline with security + e2e jobs
expressots cicd generate github --include-e2e --strategy security-focused

# Multi-platform output in one pass
expressots cicd generate all --docker-registry ghcr.io/myorg

# Generate with a deployment target
expressots cicd generate github --deploy-target kubernetes

# What strategies are supported?
expressots cicd list

# Validate an existing pipeline
expressots cicd validate

Generated job catalogue

The exact job list depends on the strategy, but a comprehensive GitHub Actions pipeline includes:

JobSteps
installCheckout, Node setup with cache, install dependencies (npm ci / yarn / pnpm).
lintnpm run lint.
testnpm test with matrix Node versions (e.g. 20, 22).
coverage(when --include-coverage) Upload to Codecov.
security(when --include-security) npm audit --audit-level=high, Trivy scan.
e2e(when --include-e2e) Spin up the app + run E2E suite.
buildnpm run build.
docker(when --docker-registry) Build + push image.
deploy(when --deploy-target) Apply manifests / call platform API.

Templates

cicd uses the expressots/templates repository on its main branch. Customize them with expressots templates repo set <url>.

See also

  • containerize: produce the Docker artifacts the pipeline builds.
  • migrate: generate platform-migration scaffolds.
  • templates: manage the underlying template cache.