← ClaudeAtlas

cicdlisted

Set up a self-contained GitHub Actions CI workflow for the current project. Detects language(s) from the codebase (TS/JS, Python, Go, Rust) and writes `.github/workflows/ci.yml` with lint, test, and build gates. Idempotent, skips if the workflow already exists unless the user asks to reconcile.
Bobi-Labs/bobi-stack-template · ★ 2 · DevOps & Infrastructure · score 66
Install: claude install-skill Bobi-Labs/bobi-stack-template
# CI/CD Setup Generate a self-contained `.github/workflows/ci.yml` tailored to the project's language stack. The workflow runs on every PR and on pushes to `main`, with lint + test + (optional) build gates. **Self-contained.** No external reusable workflows, no shared repos. Each project owns its CI file outright. **Idempotent.** If `.github/workflows/ci.yml` already exists, do not overwrite. Tell the user it exists, show its language coverage, and ask whether to reconcile (add missing language jobs) or leave it. ## Steps ### 1. Detect the language stack Read the repo root and identify which of the supported languages are in play. Look for these markers (a project can be polyglot, generate jobs for every language found): | Language | Marker files | |---|---| | Node / TypeScript | `package.json` (check `engines.node`, scripts, lockfile for npm/pnpm/yarn/bun) | | Python | `pyproject.toml`, `requirements.txt`, `setup.py`, `Pipfile` | | Go | `go.mod` | | Rust | `Cargo.toml` | If none of these are present, tell the user the project's language stack isn't recognized and stop. Don't write a workflow that won't work. If multiple languages are detected, generate a workflow with one job per language. The jobs run in parallel. ### 2. Check for existing workflow If `.github/workflows/ci.yml` exists: - Read it. - Identify which languages it covers (look for `setup-node`, `setup-python`, `setup-go`, `dtolnay/rust-toolchain`). - If it already covers everything detected in step 1,