CI/CD reference
The project has 8 GitHub Actions workflows in .github/workflows/.
Overview
Section titled “Overview”| Workflow | Purpose | Trigger |
|---|---|---|
ci.yaml |
Main CI — builds and tests all bindings | push/PR to main |
ci-cli.yaml |
CLI-specific tests | push/PR to main |
ci-docker.yaml |
Docker image build and tests | push/PR to main |
docs.yaml |
Build and deploy documentation | push to main, manual |
publish.yaml |
Publish packages to all registries | manual, release |
publish-docker.yaml |
Build and push Docker image | manual, release |
validate-issues.yml |
Validate issue format | issue opened/edited |
validate-pr.yml |
Validate PR format | PR opened/edited/synced |
CI workflows
Section titled “CI workflows”ci.yaml — main CI
Section titled “ci.yaml — main CI”Runs on push to main and pull requests when relevant paths change:
crates/**, packages/**, e2e/**, sources/**, scripts/**, docs/snippets/**, Cargo.toml, Taskfile.yml.
This is the primary workflow that builds and tests all language bindings.
ci-cli.yaml — CLI
Section titled “ci-cli.yaml — CLI”Runs on push to main and pull requests when CLI or core paths change:
crates/ts-pack-cli/**, crates/ts-pack-core/**, test_apps/cli/**.
ci-docker.yaml — Docker
Section titled “ci-docker.yaml — Docker”Runs on push to main and pull requests when Docker or core paths change:
docker/**, crates/ts-pack-core/**, crates/ts-pack-cli/**.
Docs workflow
Section titled “Docs workflow”docs.yaml runs on push to main when docs files change, and you can also trigger it manually via workflow_dispatch. It builds the docs site and deploys it.
Triggers on changes to: docs/**, zensical.toml, pyproject.toml, sources/language_definitions.json, and scripts/generate_grammar_table.py.
Publishing workflows
Section titled “Publishing workflows”Both publish workflows run automatically on a GitHub release event, and you can also trigger them manually via workflow_dispatch.
publish.yaml — package releases
Section titled “publish.yaml — package releases”Takes a release tag (for example vX.Y.Z), an optional dry_run flag, and an optional targets list (comma-separated, defaults to all). On a real run, it publishes to all registered package registries simultaneously.
publish-docker.yaml — Docker image
Section titled “publish-docker.yaml — Docker image”Takes a release tag and optional dry_run. Builds the multi-arch image (amd64 + arm64) using docker buildx and pushes to ghcr.io.
Validation workflows
Section titled “Validation workflows”validate-issues.yml
Section titled “validate-issues.yml”Validates the format of newly opened or edited issues using a reusable workflow from xberg-io/actions.
validate-pr.yml
Section titled “validate-pr.yml”Validates the format of pull requests when opened, edited, or synchronized using a reusable workflow from xberg-io/actions.