c0x12c/ai-toolkit

ci-cd-patterns

CI/CD pipeline patterns for GitHub Actions, PR automation, and deployment workflows.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/c0x12c/ai-toolkit --skill ci-cd-patterns

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

CI/CD Patterns

Patterns for GitHub Actions, PR automation, and deployment workflows.

When to Use

  • Setting up or fixing GitHub Actions workflows
  • Automating PR checks (lint, test, build)
  • Configuring deployment pipelines
  • Monitoring PR status and retrying flaky CI
  • Setting up multi-environment deployment (dev, staging, prod)

GitHub Actions --- Common Patterns

Basic CI Workflow

yaml
name: CI
on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main, develop]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: ./gradlew test

PR Check Workflow

yaml
name: PR Check
on: pull_request

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: ./gradlew ktlintCheck

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: ./gradlew test

  build:
    runs-on: ubuntu-latest
    needs: [lint, test]
    steps:
      - uses: actions/checkout@v4
      - run: ./gradlew build

PR Babysitting Pattern

Monitor a PR through CI, handle common failures:

  1. Check CI status --- gh pr checks <number>
  2. Identify failure type --- flaky test, lint error, build failure
  3. Fix and push --- for lint/build errors, fix locally and push
  4. Retry flaky tests --- re-run the workflow: gh run rerun <run-id> --failed
  5. Resolve merge conflicts --- rebase onto target branch
  6. Enable auto-merge --- gh pr merge <number> --auto --squash
See workflows.md for ready-to-use GitHub Actions YAML templates.

Deployment Checklist

Before deploying:

  • [ ] All CI checks pass
  • [ ] No merge conflicts
  • [ ] Database migrations reviewed (if any)
  • [ ] Environment variables set in target environment
  • [ ] Rollback plan identified

Gotchas

  • Caching saves minutes per run. Always cache dependencies (actions/cache or actions/setup-java with cache). A cold Gradle build takes 3-5 minutes, cached takes 30 seconds.
  • `needs:` creates sequential dependencies. Without it, all jobs run in parallel. Use needs: [lint, test] to make build wait for checks.
  • Secret names are case-sensitive. secrets.DB_PASSWORD and secrets.db_password are different. Match the exact name from Settings > Secrets.
  • Don't use `actions/checkout@v3` --- use `v4`. v3 uses Node 16 which is deprecated. v4 uses Node 20.
  • Flaky tests need investigation, not just retry. If you re-run a workflow more than twice for the same test, fix the test. Common causes: race conditions, time-dependent assertions, shared test state.
  • Force-pushing during CI review resets the check suite. Wait for CI to finish before force-pushing, or you'll waste runner minutes.

Rules

  • Every PR must pass CI before merge
  • Don't skip CI checks ([skip ci]) unless it's docs-only
  • Keep workflows under 10 minutes total
  • Use matrix builds for multi-version testing
  • Store secrets in GitHub Secrets, never in code

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills