Skip to content

CI/CD reference

The project has 8 GitHub Actions workflows in .github/workflows/.

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

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

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

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

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

Both publish workflows run automatically on a GitHub release event, and you can also trigger them manually via workflow_dispatch.

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

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

validate-issues.yml

Validates the format of newly opened or edited issues using a reusable workflow from kreuzberg-dev/actions.

validate-pr.yml

Validates the format of pull requests when opened, edited, or synchronized using a reusable workflow from kreuzberg-dev/actions.