ci-cd-workflows

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.

16 stars

Best use case

ci-cd-workflows is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using ci-cd-workflows should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ci-cd-workflows/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/devops/ci-cd-workflows/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ci-cd-workflows/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ci-cd-workflows Compares

Feature / Agentci-cd-workflowsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# CI/CD Workflows

**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`.

## Related Skills

- **testing-strategy** - Test architecture and patterns
- **dev-cli-development** - Local testing with dev-cli
- **adapter-development** - Adapter build processes

## System Overview

**For complete architecture**, see `docs/developer-guide/ci-cd.md` and [architecture.md](resources/architecture.md).

### Workflow Organization

**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 merge

**Testing 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 platforms
- `adapter-build-act.yaml` - ACT local testing workflow (for local development with act)

**Maintenance Workflows** (`maintenance-*.yaml`)

- *(Currently none - Dependabot PRs are merged manually)*

**Reusable Workflows** (`*.yaml`)

- `load-versions.yaml` - Dynamic version loading
- `test-suite.yaml` - Generic test runner
- `test-frameworks.yaml` - Framework testing
- `build-adapters.yaml` - Adapter build orchestration
- `build-docker.yaml` - Docker image builds

### Single Source of Truth

**versions.json** (repo root):

- Infrastructure versions (Python, Node, Java) with docker_tag fields
- Adapter versions and repositories (debugpy, vscode-js-debug, java-debug)
- Global packages (build tools: pip, setuptools, wheel, typescript, ts-node)
- Platform/architecture matrix
- GitHub Actions configuration

All workflows dynamically load versions via `load-versions.yaml` - zero hardcoded versions.

See `docs/developer-guide/ci-cd.md` for configuration overview.

### Version Management Strategy

- **versions.json** - Infrastructure versions (Python, Node, Java) and adapter versions updated manually
- **pyproject.toml** - Application dependencies managed by Dependabot (creates PRs automatically)

### Dependabot Integration

Dependabot creates PRs directly against `main`, but **no workflows run** on these PRs:

1. **Target Branch**: All Dependabot PRs target `main`
1. **No CI Triggers**: `release-pr.yaml` skips Dependabot PRs (`github.actor != 'dependabot[bot]'`)
1. **Manual Management**: PRs are reviewed, typically retargeted to release branches, and merged manually
1. **Ecosystems**: pip (daily), github-actions (weekly), npm (weekly)

**Configuration**: `.github/dependabot.yaml`

## Common Tasks

### Running Tests

**On GitHub:**

- Release PRs to `main` → triggers `release-pr.yaml` which calls `test-parallel.yaml`
- Manual dispatch via Actions UI (workflow_dispatch) with options:
  - suite: all, cli, shared, common, logging, mcp, core, frameworks, launch, ci_cd
  - `skip_coverage`: Skip coverage reporting for faster execution
  - `debug_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=true`
- Sets: `AIDB_LOG_LEVEL=TRACE`, `AIDB_ADAPTER_TRACE=1`, `AIDB_CONSOLE_LOGGING=1`

**Test artifacts:** All jobs upload logs to `test-logs-{suite}` artifacts (7-day retention):

- Includes: pytest logs, container logs, CLI logs, full test output
- Retrieval: `gh run download {run-id} -n test-logs-{suite}`
- Job summaries show pytest summary (capped at 100 lines) with link to full artifact

**Locally:**

```bash
./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](resources/quick-reference.md) and [CI/CD Integration Tests](#cicd-integration-tests) below.

### Troubleshooting CI Failures with GitHub CLI

**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:**

```bash
# Verify GH CLI is installed and authenticated
gh auth status
```

**Common workflows:**

```bash
# 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:**

- Status (pass/fail)
- Artifact download command (copy-paste ready)
- Pytest summary (capped at 100 lines)
- FAILED/SKIPPED/ERROR test listings with file paths

**Artifact contents:**

- `pytest-logs/` - Full pytest output, stack traces, captured stdout/stderr
- `.cache/container-data/` - Docker/adapter logs, DAP traces
- `aidb-logs/` - AIDB core library logs (from ~/.aidb/log/)

**For complete guide** including artifact structure, log locations, and troubleshooting workflows, see [troubleshooting.md](resources/troubleshooting.md).

### Building Adapters

**PR-based workflow:**

```bash
# 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](resources/adapter-builds.md) for architecture.

### Cutting Releases

**PR-based release workflow:**

1. Create release branch: `release/X.Y.Z`
1. Create release notes: `docs/release-notes/X.Y.Z.md`
1. Open PR to `main` → triggers comprehensive release pipeline:
   - Validation, tests, builds (VSIX, wheel)
   - TestPyPI/ProdPyPI uploads
   - Adapter builds (Python/JS/Java × platforms)
   - Draft release creation
1. Merge PR → publishes release

**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](resources/release-workflows.md) or `docs/developer-guide/ci-cd.md` for detailed job list.

### Adding Frameworks

1. Create app in `src/tests/_assets/framework_apps/{lang}/{framework}/`
1. Add deps to `src/tests/_docker/scripts/install-framework-deps.sh`
1. Create test file in `src/tests/frameworks/{lang}/{framework}/e2e/`

Framework dependencies auto-managed via checksum services.

### Modifying Configuration

**Update infrastructure version:**

```json
// versions.json
{
  "infrastructure": {
    "python": {
      "version": "3.12"  // All workflows pick up automatically
    }
  }
}
```

**Add platform:**

```json
{
  "platforms": [
    {
      "os": "linux",
      "arch": "arm64"
    }
  ]
}
```

## Test Orchestration

**For detailed architecture**, see [Test Orchestration](resources/test-orchestration.md) and `docs/developer-guide/ci-cd.md`.

### Parallel Execution

**Main orchestrator:** `test-parallel.yaml`

**Flow:**

1. Load versions from `versions.json`
1. Build adapters and Docker in parallel
1. Run test suites in parallel: cli, shared, mcp, core, frameworks, launch, common/logging, ci_cd

**Performance:**

- 10-15 min wall-clock
- 50% faster than sequential
- Up to 10 parallel runners

### Dynamic Matrix

Frameworks use dynamic matrix from `versions.json`:

- Single source of truth
- Easy enable/disable
- Auto version expansion
- No workflow changes needed

## Troubleshooting

**For comprehensive guide**, see [Troubleshooting](resources/troubleshooting.md).

**For CI test failures and artifact analysis**, see [troubleshooting.md](resources/troubleshooting.md).

### Quick Diagnostics

**Workflow not triggering:**

- Check trigger conditions and branch names
- Review path filters
- Verify workflow enabled

**Test failures:**

- Download artifacts: `gh run download <run-id> -n test-logs-{suite}`
- Check job logs in Actions UI
- Look for adapter build failures
- Review Docker build logs
- Check version conflicts

**Adapter builds:**

- Verify platform compatibility
- Check upstream availability
- Review versions.json adapter configuration

**Version loading:**

- Validate versions.json syntax
- Check Python version consistency

### Investigation Workflow

1. Identify failing job → Download artifacts (`gh run download`)
1. Check logs for errors
1. Review recent changes
1. Reproduce locally with dev-cli or act

**Note:** `actionlint` runs automatically via pre-commit hooks when committing workflow changes.

## Workflow Patterns

See [architecture.md](resources/architecture.md) for job dependencies, conditionals, matrices, and reusable workflows.

## Configuration Files

- **versions.json** - Infrastructure, adapters, platforms (see `docs/developer-guide/ci-cd.md`)

**Secrets:** See `docs/developer-guide/ci-cd.md` for complete list.

## Local CI Testing

Use `act` to run workflows locally. See [quick-reference.md](resources/quick-reference.md) for commands.

## CI/CD Integration Tests

Act-based tests in `src/tests/ci_cd/integration/` validate workflow syntax and matrices.

**Quick commands:**

```bash
./dev-cli test run -s ci_cd              # All tests (unit + integration)
./dev-cli test run -s ci_cd -m "not slow"  # Skip slow tests
```

## Composite Actions

Available in `.github/actions/`: `setup-aidb-env`, `setup-multi-lang`, `download-test-artifacts`, `run-aidb-tests`. See [architecture.md](resources/architecture.md).

## Best Practices

For comprehensive guidelines on workflow development, configuration management, testing strategy, and validation checklists, see [architecture.md](resources/architecture.md).

## Cross-Workflow Dependencies

Workflows run independently by default. See [architecture.md](resources/architecture.md) for cross-workflow coordination patterns.

## Resources

| Resource                                                 | Content                                                                       |
| -------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [architecture.md](resources/architecture.md)             | Workflow patterns, reusable workflows, composite actions, cross-workflow deps |
| [test-orchestration.md](resources/test-orchestration.md) | Parallel execution, test suites, matrix strategy                              |
| [adapter-builds.md](resources/adapter-builds.md)         | Build process, artifacts, platforms, local builds                             |
| [release-workflows.md](resources/release-workflows.md)   | Release process, versioning, CD_SKIP_PYPI                                     |
| [troubleshooting.md](resources/troubleshooting.md)       | Investigation workflow, common issues, debugging                              |
| [quick-reference.md](resources/quick-reference.md)       | Commands, file locations, triggers                                            |

### Internal Documentation

Complete guides: `docs/developer-guide/ci-cd.md`

### Code References

- `.github/workflows/` - Workflow definitions
- `.github/actions/` - Composite actions
- `.github/scripts/` - CI/CD scripts
- `versions.json` - Infrastructure & adapter versions

## Quick Reference

### Workflow Triggers

**Run 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)

### Common Commands

```bash
# 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
```

### Key Files

- `versions.json` - Single source of truth
- `.github/workflows/test-parallel.yaml` - Main orchestrator
- `.github/workflows/load-versions.yaml` - Version loading
- `.actrc` - Local CI config

______________________________________________________________________

**Remember:**

- versions.json is single source of truth
- Use reusable workflows for DRY
- Test locally before pushing
- Validate configuration changes
- Monitor performance metrics

Related Skills

cicd-workflows

16
from diegosouzapw/awesome-omni-skill

Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.

workflows-review

16
from diegosouzapw/awesome-omni-skill

Perform exhaustive code reviews using multi-agent analysis, ultra-thinking, and worktrees

team-workflows

16
from diegosouzapw/awesome-omni-skill

Team collaboration patterns - shared configs, standards, onboarding

tdd-workflows-tdd-refactor

16
from diegosouzapw/awesome-omni-skill

Use when working with tdd workflows tdd refactor

tdd-workflows-tdd-red

16
from diegosouzapw/awesome-omni-skill

Generate failing tests for the TDD red phase to define expected behavior and edge cases.

tdd-workflows-tdd-green

16
from diegosouzapw/awesome-omni-skill

Implement the minimal code needed to make failing tests pass in the TDD green phase.

parallel-workflows

16
from diegosouzapw/awesome-omni-skill

Optimizes parallel execution of multiple tasks. Use when user mentions 並列で実行, 同時にやって, まとめてやって, run in parallel, do these together. Do NOT load for: 単一タスク, 順次実行が必要な作業, 依存関係のあるタスク.

extending-workflows

16
from diegosouzapw/awesome-omni-skill

Create and extend workflow definitions using the workflow system architecture

advanced-workflows

16
from diegosouzapw/awesome-omni-skill

Multi-tool orchestration patterns for complex Bluera Knowledge operations. Teaches progressive library exploration, adding libraries with job monitoring, handling large result sets, multi-store searches, and error recovery workflows.

map-workflows-guide

16
from diegosouzapw/awesome-omni-skill

Comprehensive guide for choosing the right MAP workflow based on task type and requirements

tdd-workflows-tdd-cycle

16
from diegosouzapw/awesome-omni-skill

Use when working with tdd workflows tdd cycle

smart-workflows

16
from diegosouzapw/awesome-omni-skill

SmartACE (Agentic Context Engineering) workflow engine with MCP-B (Master Client Bridge) and AMUM-QCI-ETHIC module. Dual database architecture using DuckDB (analytics) + SurrealDB (graph). Uses Blender 5.0 (bpy) and UE5 Remote Control. Use when (1) MCP-B agent-to-agent communication (INQC protocol), (2) AMUM 3→6→9 progressive alignment, (3) QCI quantum coherence states, (4) ETHIC principles enforcement (Marcel/Anthropic/EU AI Act), (5) SurrealDB graph relationships, (6) DuckDB SQL workflows, (7) ML inference with infera/vss, (8) Blender 5.0 headless processing, (9) UE5 scene control, (10) DuckLake time travel.