Konfiguracja pipeline za pomocą Claude Code
Twój pipeline CI trwa 22 minuty. Developerzy pushują, przełączają się na Slack, tracą kontekst i wracają dziesięć minut po tym, jak build się wysypał, aby odkryć błąd lintingu, którego poprawienie zajęłoby 3 sekundy lokalnie. YAML pipeline’a ma 400 linii, nikt nie rozumie konfiguracji cachowania, a ostatnia osoba, która go dotykała, opuściła firmę. Gdy nowy serwis potrzebuje pipeline’a, ktoś kopiuje YAML z innego repo, usuwa części, które wyglądają na złe, i ma nadzieję na najlepsze. Jest lepszy sposób.
Co z tego wyniesiesz
Dział zatytułowany „Co z tego wyniesiesz”- Workflow Claude Code do generowania pipeline CI/CD od zera, optymalizacji istniejących pipeline’ów i dodawania kroków automatyzacji napędzanych przez Claude
- Prompty gotowe do skopiowania, które produkują workflow GitHub Actions, konfiguracje GitLab CI i szablony workflow wielokrotnego użytku z odpowiednim cachowaniem i równoległością
- Praktyczne zrozumienie jak zintegrować sam Claude Code w Twój pipeline dla automatycznego review PR, poprawek kodu i gate’ów jakości
Generowanie pipeline’a ze struktury projektu
Dział zatytułowany „Generowanie pipeline’a ze struktury projektu”Najlepszy pipeline to taki, który pasuje do Twojego faktycznego projektu — nie generyczny szablon. Claude Code czyta Twoje repozytorium i generuje pipeline dostosowany do Twojego stacku.
Claude Code wykrywa Twojego menedżera pakietów z lockfile’a, Twój framework testowy z konfiguracji i Twoje narzędzie budowania ze skryptów. Wygenerowany pipeline używa odpowiednich ścieżek cache (~/.npm, node_modules/.cache, .next/cache) dla Twojego stacku.
Po wygenerowaniu, zweryfikuj krytyczne części:
- Sprawdź, że
actions/cacheużywa poprawnego hasha lockfile’a jako klucza cache. - Potwierdź, że grupa
concurrencyzapobiega marnowaniu minut CI na zastąpione commity. - Zweryfikuj, że job deploy używa
environment: production, co włącza gate’y zatwierdzania GitHub.
Optymalizacja istniejącego pipeline’a
Dział zatytułowany „Optymalizacja istniejącego pipeline’a”Jeśli już masz pipeline, ale jest wolny lub zawodny, Claude Code może go zoptymalizować.
Here is our current GitHub Actions workflow (paste the YAML). It takes 22 minutes to complete. Optimize it to run in under 10 minutes by: 1) parallelizing independent jobs, 2) adding dependency caching, 3) removing redundant steps (our lint job installs all deps but only needs the source), 4) using a smaller runner where possible, 5) only running affected tests when only certain directories change (path filtering). Keep the same behavior and failure modes, just make it faster.Typowe optymalizacje stosowane przez Claude Code:
- Strategia matrix do testowania w wielu wersjach Node bez duplikowania definicji jobów
- Filtrowanie ścieżek aby zmiany w dokumentacji nie uruchamiały pełnego test suite
- Cachowanie Turbo/Nx dla buildów monorepo, które pomijają niezmienione pakiety
- Przekazywanie artefaktów między jobami zamiast rebuildowania
Dodawanie Claude Code do Twojego pipeline’a
Dział zatytułowany „Dodawanie Claude Code do Twojego pipeline’a”Claude Code może działać jako krok w Twoim pipeline CI, zapewniając automatyczne review PR, poprawki kodu i analizę jakości.
claude-code-action to oficjalna akcja GitHub do uruchamiania Claude Code w CI. Obsługuje automatycznie uwierzytelnianie, przekazywanie kontekstu i formatowanie odpowiedzi.
Dla GitLab CI, użyj trybu headless Claude Code bezpośrednio:
claude-review: stage: review image: node:20-alpine script: - npx @anthropic-ai/claude-code -p "Review the changes in this MR for security issues and code quality. Output a markdown summary." --output-format text > review.md - cat review.md rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event"Szablony workflow wielokrotnego użytku
Dział zatytułowany „Szablony workflow wielokrotnego użytku”Gdy Twoja organizacja rośnie, chcesz spójnych pipeline’ów w repozytoriach. Claude Code może generować szablony workflow wielokrotnego użytku.
Create a reusable GitHub Actions workflow template (.github/workflows/node-ci.yml) that other repos can call with workflow_call. Parameters should include: node-version (default 20), package-manager (npm/yarn/pnpm, default npm), test-command (default "npm test"), deploy-environment (staging/production), and enable-claude-review (boolean, default false). The template should handle: dependency installation with caching, linting, type-checking, testing with coverage, building, and optional deployment. Also create a README.md documenting how to use the template from another repo.Zespoły następnie odnoszą się do szablonu z minimalną konfiguracją:
# W .github/workflows/ci.yml każdego repojobs: ci: uses: our-org/.github/.github/workflows/node-ci.yml@main with: node-version: 20 enable-claude-review: true secrets: inheritBezpieczeństwo pipeline’a
Dział zatytułowany „Bezpieczeństwo pipeline’a”Pipeline CI to cele ataków o wysokiej wartości, ponieważ mają dostęp do sekretów i poświadczeń wdrożeniowych. Claude Code może audytować Twoją konfigurację pipeline’a.
Review our GitHub Actions workflows for security issues. Check for: 1) secrets exposed in logs (echo statements that might print secrets), 2) actions pinned by tag instead of SHA (supply chain risk), 3) excessive permissions (should use least privilege), 4) pull_request_target triggers (can expose secrets to fork PRs), 5) unpinned action versions, 6) missing concurrency controls that could allow parallel deploys. For each finding, show the fix.Pipeline dla monorepo
Dział zatytułowany „Pipeline dla monorepo”Monorepo potrzebują pipeline’ów, które buildują i testują tylko to, co się zmieniło. Claude Code obsługuje tę złożoność.
Kontrola kosztów
Dział zatytułowany „Kontrola kosztów”Koszty CI rosną z rozmiarem zespołu. Claude Code może pomóc zoptymalizować wydatki.
Our GitHub Actions bill was $2,400 last month. Analyze our workflow files and suggest ways to reduce costs: 1) identify jobs that could use smaller runners, 2) find tests that run on every push but should only run on PR, 3) suggest caching improvements that would reduce install times, 4) identify steps that could be combined to reduce job overhead, 5) recommend where ARM runners (cheaper per minute) would work for our Docker builds.Gdy to się psuje
Dział zatytułowany „Gdy to się psuje”Wygenerowany pipeline zawodzi przy pierwszym uruchomieniu. Środowiska CI różnią się od lokalnych maszyn. Najczęstsze problemy: brakujące zmienne środowiskowe, inna wersja Node.js, czułość na wielkość liter w systemie plików (macOS jest niewrażliwy na wielkość liter, Linux jest wrażliwy). Przekaż log błędu CI do Claude Code: “Here is the CI failure log. Fix the workflow to handle this environment difference.”
Cachowanie powoduje, że build używa przestarzałych zależności. Jeśli klucz cache nie zawiera hasha lockfile’a, stare zależności utrzymują się. Zapytaj Claude Code: “Our CI cache is serving stale node_modules. Update the cache key to include the hash of our pnpm-lock.yaml and add a cache-miss step that does a clean install.”
Koszty Claude Code Action są wyższe niż oczekiwano. Każde wspomnienie @claude wyzwala wywołanie API. Ustaw --max-turns, aby ograniczyć ile rund w przód i w tył Claude używa na review. Zacznij od 5 tur i zwiększaj tylko jeśli review wydają się niekompletne. Używaj też kontroli współbieżności na poziomie workflow, aby zapobiec uruchamianiu wielu review równolegle na tym samym PR.
Szablon wielokrotnego użytku nie pasuje do konkretnego repo. Workflow wielokrotnego użytku mają ograniczenia (nie można używać warunków if w wywołującym). Dla repo, które znacząco odbiegają od szablonu, wygeneruj samodzielny workflow: “Our api-gateway repo needs a different pipeline because it uses Docker multi-stage builds and deploys to ECS instead of Kubernetes. Generate a dedicated workflow based on our template but with these differences.”
Zmiany w pipeline są trudne do przetestowania. Błędy składni YAML psują CI bez lokalnego sposobu walidacji. Zapytaj Claude Code: “Add a job at the start of our pipeline that validates the workflow YAML syntax using actionlint. Also create a local test script that runs our pipeline steps in Docker to catch issues before pushing.”