// Guide for GitHub Actions workflows, test orchestration, parallel testing,
| name | ci-cd-workflows |
| description | Guide for GitHub Actions workflows, test orchestration, parallel testing, adapter builds, releases, and CI/CD configuration. Use when working with .github/workflows/, versions.json, or troubleshooting CI issues. |
| version | 1.0.0 |
| tags | ["ci-cd","github-actions","workflows","testing","deployment","release","orchestration"] |
Purpose: Guide development, modification, and troubleshooting of AIDB's GitHub Actions CI/CD infrastructure
This skill provides practical guidance for working with workflows and configuration. Complete documentation lives in docs/developer-guide/ci-cd.md.
For complete architecture, see docs/developer-guide/ci-cd.md and architecture.md.
Note: All workflow files are now in .github/workflows/ root directory (GitHub Actions requirement). Workflows use category prefixes for organization:
Release Workflows (release-*.yaml)
release-pr.yaml - PR-based release orchestration (validate, test, build, matrix, adapters, upload)release-publish.yaml - Publish draft release on PR mergeTesting Workflows (test-*.yaml)
test-parallel.yaml - Main test orchestrator (10-15 min, runs everything including frameworks). Called by release-pr.yaml or via manual dispatch. Builds adapters and Docker images as part of its flow.Adapter Workflows (adapter-*.yaml)
adapter-build.yaml - Build debug adapters for multiple platformsadapter-build-act.yaml - ACT local testing workflow (for local development with act)Maintenance Workflows (maintenance-*.yaml)
Reusable Workflows (*.yaml)
load-versions.yaml - Dynamic version loadingtest-suite.yaml - Generic test runnertest-frameworks.yaml - Framework testingbuild-adapters.yaml - Adapter build orchestrationbuild-docker.yaml - Docker image buildsversions.json (repo root):
All workflows dynamically load versions via load-versions.yaml - zero hardcoded versions.
See docs/developer-guide/ci-cd.md for configuration overview.
AIDB uses Dependabot with a staging branch strategy:
dependabot-updates (not main)release/X.Y.Z from dependabot-updatesConfiguration: .github/dependabot.yaml (pip, github-actions, npm ecosystems)
On GitHub:
main โ triggers release-pr.yaml which calls test-parallel.yamlskip_coverage: Skip coverage reporting for faster executiondebug_logging: Enable TRACE-level logging (equivalent to dev-cli -vvv)Debug logging: Enable trace-level debugging via debug_logging input (mirrors dev-cli -vvv):
gh workflow run test-parallel.yaml -f debug_logging=trueAIDB_LOG_LEVEL=TRACE, AIDB_ADAPTER_TRACE=1, AIDB_CONSOLE_LOGGING=1Test artifacts: All jobs upload logs to test-logs-{suite} artifacts (7-day retention):
gh run download {run-id} -n test-logs-{suite}Locally:
./dev-cli test run --suite shared
./dev-cli test run -t "path/to/test.py"
./dev-cli test run --suite shared --language python
# CI/CD workflow tests (includes act-based validation)
./dev-cli test run -s ci_cd # All tests (unit + integration)
./dev-cli test run -s ci_cd -m "not slow" # Skip slow act tests
./dev-cli test run -s ci_cd -m integration # Only integration tests
With act (local CI): See quick-reference.md and CI/CD Integration Tests below.
GitHub CLI is the primary tool for CI observability and debugging. When tests fail in CI, use GH CLI to inspect jobs, download artifacts, and analyze logs locally.
Prerequisites:
# Verify GH CLI is installed and authenticated
gh auth status
Common workflows:
# List recent workflow runs
gh run list --status=failure --limit 10
# View run details and job summary
gh run view <run-id>
# Watch running job in real-time
gh run watch <run-id>
# Download test artifacts (from job summary)
gh run download <run-id> -n test-logs-{suite}
Job summaries include:
Artifact contents:
pytest-logs/ - Full pytest output, stack traces, captured stdout/stderr.cache/container-data/ - Docker/adapter logs, DAP tracesaidb-logs/ - AIDB core library logs (from ~/.aidb/log/)For complete guide including artifact structure, log locations, and troubleshooting workflows, see troubleshooting.md.
PR-based workflow:
# Create release branch
git checkout -b release/0.1.0
# Add release notes
# Push and open PR to main
git push origin release/0.1.0
Manual dispatch: Actions UI โ Build Debug Adapters
See Adapter Builds for architecture.
PR-based release workflow:
release/X.Y.Zdocs/release-notes/X.Y.Z.mdmain โ triggers comprehensive release pipeline:
Testing mode: Set CD_SKIP_PYPI=true to run full workflow without PyPI uploads.
For complete pipeline breakdown, CD_SKIP_PYPI details, and examples, see Release Workflows or docs/developer-guide/ci-cd.md for detailed job list.
src/tests/_assets/framework_apps/{lang}/{framework}/src/tests/_docker/scripts/install-framework-deps.shsrc/tests/frameworks/{lang}/{framework}/e2e/Framework dependencies auto-managed via checksum services.
Update infrastructure version:
// versions.json
{
"infrastructure": {
"python": {
"version": "3.12" // All workflows pick up automatically
}
}
}
Add platform:
{
"platforms": [
{
"os": "linux",
"arch": "arm64"
}
]
}
For detailed architecture, see Test Orchestration and docs/developer-guide/ci-cd.md.
Main orchestrator: test-parallel.yaml
Flow:
versions.jsonPerformance:
Frameworks use dynamic matrix from versions.json:
For comprehensive guide, see Troubleshooting.
For CI test failures and artifact analysis, see troubleshooting.md.
Workflow not triggering:
Test failures:
gh run download <run-id> -n test-logs-{suite}Adapter builds:
Version loading:
gh run download)Note: actionlint runs automatically via pre-commit hooks when committing workflow changes.
See architecture.md for job dependencies, conditionals, matrices, and reusable workflows.
docs/developer-guide/ci-cd.md)Secrets: See docs/developer-guide/ci-cd.md for complete list.
Use act to run workflows locally. See quick-reference.md for commands.
Act-based tests in src/tests/ci_cd/integration/ validate workflow syntax and matrices.
Quick commands:
./dev-cli test run -s ci_cd # All tests (unit + integration)
./dev-cli test run -s ci_cd -m "not slow" # Skip slow tests
Available in .github/actions/: setup-aidb-env, setup-multi-lang, download-test-artifacts, run-aidb-tests. See architecture.md.
For comprehensive guidelines on workflow development, configuration management, testing strategy, and validation checklists, see architecture.md.
Workflows run independently by default. See architecture.md for cross-workflow coordination patterns.
| Resource | Content |
|---|---|
| architecture.md | Workflow patterns, reusable workflows, composite actions, cross-workflow deps |
| test-orchestration.md | Parallel execution, test suites, matrix strategy |
| adapter-builds.md | Build process, artifacts, platforms, local builds |
| release-workflows.md | Release process, versioning, CD_SKIP_PYPI |
| troubleshooting.md | Investigation workflow, common issues, debugging |
| quick-reference.md | Commands, file locations, triggers |
Complete guides: docs/developer-guide/ci-cd.md
.github/workflows/ - Workflow definitions.github/actions/ - Composite actions.github/scripts/ - CI/CD scriptsversions.json - Infrastructure & adapter versionsRun Tests: Via release-pr.yaml (PR to main) or manual dispatch
Release (draft): PR to main from release/** branch
Release (publish): PR merge to main from release/** branch
Build Adapters: Part of release workflow (release-pr.yaml)
# Local testing
./dev-cli test run --suite {shared|cli|mcp}
./dev-cli test run -t "path/to/test.py"
# Validation
actionlint .github/workflows/**/*.yaml
# Local CI
act -l # List
act -j test-shared # Run job
act push -j build # With event
versions.json - Single source of truth.github/workflows/test-parallel.yaml - Main orchestrator.github/workflows/load-versions.yaml - Version loading.actrc - Local CI configRemember: