CI Pipeline Synthesizer
Overview
Generate production-ready GitHub Actions workflow files for library and package projects with automated build and test stages, dependency caching, and multi-version testing matrices.
Workflow
1. Identify Project Type
Determine the package ecosystem by examining project files:
- Node.js/npm:
package.jsonpresent - Python:
setup.py,pyproject.toml, orrequirements.txtpresent - Go:
go.modpresent - Rust:
Cargo.tomlpresent
2. Select Template
Use the appropriate template from assets/ based on project type:
github-actions-nodejs.yml- Node.js/npm packagesgithub-actions-python.yml- Python packagesgithub-actions-go.yml- Go modulesgithub-actions-rust.yml- Rust crates
3. Customize Configuration
Adapt the template to project-specific needs:
Test commands: Update test scripts to match project conventions
- Node.js:
npm test,npm run test:coverage - Python:
pytest,python -m unittest - Go:
go test ./... - Rust:
cargo test
Build commands: Adjust build steps if needed
- Node.js:
npm run build(if build step exists) - Python:
python -m build - Go:
go build - Rust:
cargo build --release
Version matrix: Modify tested versions based on support policy
- Node.js: LTS versions (16.x, 18.x, 20.x)
- Python: Active versions (3.9, 3.10, 3.11, 3.12)
- Go: Recent versions (1.21, 1.22)
- Rust: stable, beta (optional)
Trigger conditions: Adjust when pipeline runs
- Default: Push to main/master, all pull requests
- Custom: Specific branches, paths, or schedules
4. Place Workflow File
Create the workflow file at .github/workflows/ci.yml in the project root. If .github/workflows/ doesn't exist, create the directory structure first.
5. Verify Configuration
Check that the generated workflow:
- Uses appropriate actions versions (e.g.,
actions/checkout@v4,actions/setup-node@v4) - Includes dependency caching for faster builds
- Runs on appropriate triggers (push, pull_request)
- Tests against relevant version matrices
- Has clear job and step names
Template Features
All templates include:
- Dependency caching: Speeds up builds by caching package managers
- Matrix testing: Tests across multiple language/runtime versions
- Parallel execution: Runs tests for different versions concurrently
- Clear naming: Descriptive job and step names for easy debugging
- Best practices: Uses recommended actions and configurations
Customization Examples
Add code coverage reporting:
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./coverage.xmlAdd linting step:
- name: Run linter
run: npm run lint # or: pylint, golangci-lint, cargo clippyRestrict to specific branches:
on:
push:
branches: [main, develop]
pull_request:
branches: [main]Add scheduled runs:
on:
schedule:
- cron: '0 0 * * 0' # Weekly on SundayTips
- Start with the template and customize incrementally
- Test the workflow by creating a pull request or pushing to a test branch
- Use
actions/cachefor dependencies to reduce build times - Keep matrix versions current with language support policies
- Add status badges to README.md:

Note for this repository (ffmpeg-skill)
This skill's generic templates assume ordinary language-toolchain dependencies
(pip/npm/go/cargo). They do NOT model this repo's actual CI needs — installing
a real ffmpeg binary per OS (apt/brew ffmpeg-full/choco), capturing its
-filters/-encoders/-bsfs listings as an artifact, or the skipIf-based
Windows test coverage in tests/test_contract.py — all of which
.github/workflows/ci.yml already handles and this skill's templates would
not reproduce. Treat this as reference/scaffolding for a plain Python/Node/Go/
Rust package elsewhere, not a drop-in replacement for this repo's own
workflow.