setting-up-ci

v2026.09.24

Set up a GitHub Actions CI/CD pipeline with linting, testing, type-checking, and deployment steps.

GitHub
Install command
npx skhub add spencerpauly/setting-up-ci
Markdown
SKILL.md

Setup CI (GitHub Actions)

Use this skill when the user asks to set up CI, continuous integration, a build pipeline, or GitHub Actions.

Steps

  1. Detect the project structure — check for package.json (Node.js), requirements.txt / pyproject.toml (Python), go.mod (Go), or monorepo tools like Turborepo.

  2. Create .github/workflows/ci.yml

    For a Node.js project:

    name: CI
    
    on:
      push:
        branches: [main]
      pull_request:
        branches: [main]
    
    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 lint
          - run: npm run typecheck
          - run: npm test
          - run: npm run build
    
  3. Add type-checking — if typecheck script doesn't exist in package.json, add "typecheck": "tsc --noEmit".

  4. Add caching — the actions/setup-node cache option handles node_modules. For monorepos with Turborepo, add remote caching or actions/cache for .turbo.

  5. Add matrix testing (optional) — if the user needs to test across Node versions or OS:

    strategy:
      matrix:
        node-version: [18, 20, 22]
    
  6. Add deployment step (optional) — if requested, add a deploy job that runs only on main pushes, gated by the build job succeeding:

    deploy:
      needs: build
      if: github.ref == 'refs/heads/main'
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v4
        - run: npm ci && npm run build
        - run: npx vercel deploy --prod --token=${{ secrets.VERCEL_TOKEN }}
    
  7. Add status badge — add the workflow status badge to the project README:

    ![CI](https://github.com/OWNER/REPO/actions/workflows/ci.yml/badge.svg)
    

Notes

  • Keep CI fast — run lint and typecheck in parallel using separate jobs if the pipeline is slow.
  • Use npm ci (not npm install) for deterministic installs.
  • Store secrets (API keys, deploy tokens) in GitHub repository settings, never in the workflow file.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

CC0-1.0

Source path

resources/setting-up-ci

Default branch

main

Latest commit

99cd265

Tree SHA

bceb4ed