agentsclimarketplace

Add cicd

Skill jersgcodes/claude-toolkit/skills/add-cicd

[CLI-only] Scaffold GitHub Actions CI/CD workflows when asked to set up CI, add GitHub Actions, automate testing, or configure deployment pipelines for this project.From its SKILL.md

Install
npx -y skills add jersgcodes/claude-toolkit --skill add-cicd

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.4 KB, as published. Nobody here has run it

Scaffold GitHub Actions CI/CD workflows for this project. Do the following steps in order:


1. Detect stack

Read package.json, pyproject.toml, go.mod, Cargo.toml, requirements.txt to identify:

  • Language and runtime version
  • Test command (scripts.test in package.json, etc.)
  • Build command (scripts.build in package.json, etc.)
  • Package manager: check for pnpm-lock.yaml → pnpm, yarn.lock → yarn, bun.lockb → bun, else npm

Also detect frontend framework:

  • vite.config.* → Vite (static output: dist/)
  • next.config.* → Next.js
  • Neither → assume API / backend service

Report: "Stack: [X] | Package manager: [X] | Output: [X]"


2. Detect deployment target

Check for these config files in the project root:

  • vercel.json → Vercel
  • netlify.toml → Netlify
  • fly.toml → Fly.io
  • railway.toml or railway.json → Railway
  • render.yaml → Render
  • .github/workflows/deploy* already exists → note it

If none found, ask the user:

"No deployment config detected. Where does this project deploy? A) Vercel B) Netlify C) Fly.io D) Railway/Render (auto-deploy) E) GitHub Pages F) Skip CD for now"

Wait for the answer before continuing.


3. Create .github/workflows/ directory

mkdir -p .github/workflows

4. Write ci.yml

Always create this. Adapt to detected stack:

Node.js (npm):

name: CI
on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main, dev]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      - run: npm test
      - run: npm run build

Node.js (pnpm):

name: CI
on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main, dev]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v3
        with:
          version: 9
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm
      - run: pnpm install --frozen-lockfile
      - run: pnpm test
      - run: pnpm build

Python:

name: CI
on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main, dev]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
          cache: pip
      - run: pip install -r requirements.txt
      - run: python -m pytest -q

Go:

name: CI
on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main, dev]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: stable
      - run: go test ./...
      - run: go build ./...

If the project has no test script, omit the test step and add a comment: # TODO: add npm test once tests are written


5. Write cd.yml (based on deployment target)

A — Vercel:

# Vercel auto-deploys via GitHub integration — no workflow needed.
# Connect at: https://vercel.com/new → import this repo.
# Production deploys on push to main. Preview deploys on PRs automatically.

Create .github/workflows/cd-notes.md with this note instead of a workflow file.

B — Netlify: Same as Vercel — GitHub integration handles it. Create notes file.

C — Fly.io:

name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only
        env:
          FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

Note: user must add FLY_API_TOKEN to GitHub repo secrets.

D — Railway / Render:

# Railway/Render auto-deploys via GitHub integration — no workflow needed.
# Railway: https://railway.app → new project → deploy from GitHub repo.
# Render: https://render.com → new service → connect GitHub repo.
# Both deploy on push to main automatically.

Create notes file.

E — GitHub Pages (static sites):

name: Deploy
on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      - run: npm run build
      - uses: actions/upload-pages-artifact@v3
        with:
          path: dist/

  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - uses: actions/deploy-pages@v4
        id: deployment

Note: enable GitHub Pages in repo Settings → Pages → Source: GitHub Actions.

F — Skip CD: Skip this step, note it in summary.


6. Write architecture.yml

Always create this if docs/ exists or if the project has a scripts/gen-architecture.ts:

name: Architecture
on:
  push:
    branches: [main]

jobs:
  docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      - run: npm run docs:architecture
        continue-on-error: true
      - uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "docs: regenerate architecture diagram"
          file_pattern: "docs/**"

If no docs:architecture script exists, skip this workflow and note it.


7. Summary

Print:

CI/CD scaffolded

Files written:
  .github/workflows/ci.yml        — runs tests + build on push/PR to main and dev
  .github/workflows/cd.yml        — <description or "notes file only">
  .github/workflows/architecture.yml — <written or skipped>

Required setup:
  - [ ] <any GitHub secrets to add>
  - [ ] <any GitHub settings to enable (Pages, etc.)>
  - [ ] <GitHub integration to connect (Vercel/Netlify/Railway)>

Next: git add .github/ && git push — CI will run on first push.

Keep looking

Skills are one crate of 626,194. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.