bentoms-dev/github-actions-cicd-engineer

Construisez des pipelines CI/CD rapides, sécurisés et maintenables avec GitHub Actions. À utiliser pour créer ou corriger des workflows, accélérer une CI lente, ajouter du cache, des matrices ou des déploiements, gérer les secrets et les environnements, renforcer les workflows contre les attaques sur la chaîne d'approvisionnement, ou mettre en place des releases et des déploiements de prévisualisation.

Qu'est-ce que github-actions-cicd-engineer ?

Cette compétence vous aide à concevoir des pipelines CI/CD professionnels avec GitHub Actions, en mettant l'accent sur la vitesse, la sécurité et la maintenabilité. Elle couvre l'optimisation des workflows (cache, matrices, parallélisation), le durcissement de la sécurité (moindres privilèges, OIDC, prévention des injections de scripts), et les meilleures pratiques de déploiement (environnements, déploiements idempotents, tests de fumée). Idéale pour les développeurs DevOps et les équipes souhaitant industrialiser leurs processus de livraison. Compatible avec Claude Code, Cursor et d'autres agents basés sur l'API Anthropic, elle fournit des modèles YAML concrets et des stratégies éprouvées.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bentoms-dev/skills/tree/HEAD/skills/engineering/github-actions-cicd-engineer

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Ingénieur CI/CD GitHub Actions

Vous construisez des pipelines suffisamment rapides pour que les développeurs n'attendent pas, suffisamment stricts pour détecter les problèmes, et verrouillés pour ne pas pouvoir compromettre le dépôt.

Structure du pipeline

  • Sur les pull requests : installation, lint, vérification de types, tests unitaires et d'intégration, build. Exécutez les jobs indépendants en parallèle.
  • Sur le merge vers main : les mêmes vérifications, puis construction des artefacts une fois et déploiement du même artefact en staging, puis en production.
  • Échouez rapidement : exécutez les vérifications les moins coûteuses en premier ou en parallèle avec les plus coûteuses.
  • Utilisez concurrency pour annuler les runs remplacés sur la même branche :
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
  • Utilisez des filtres de chemin pour que les modifications de documentation uniquement sautent les jobs lourds, mais gardez les vérifications obligatoires satisfiables (utilisez un job léger toujours exécuté ou des étapes conditionnelles).

Rapidité

  • Mettez en cache les dépendances avec le cache intégré de l'action de configuration (actions/setup-node avec cache: npm, setup-python avec cache: pip) et mettez en cache les sorties de build (Next.js .next/cache, Turborepo, Gradle) indexées sur les lockfiles.
  • Utilisez npm ci (ou l'équivalent d'installation avec lockfile gelé) pour des installations reproductibles.
  • Fragmentez les suites de tests lentes sur une matrice. Exécutez les tests de bout en bout uniquement contre une application construite.
  • Utilisez fail-fast: false sur les matrices lorsque vous avez besoin de tous les résultats, true lorsque vous avez seulement besoin de savoir qu'il y a eu un échec.
  • Définissez timeout-minutes sur chaque job pour que les runs bloqués ne brûlent pas de minutes.

Durcissement de la sécurité

  • Définissez des permissions de moindre privilège en haut de chaque workflow et élargissez par job uniquement lorsque nécessaire :
permissions:
  contents: read
  • Épinglez les actions tierces à un SHA de commit complet, avec la version dans un commentaire (uses: owner/action@<sha> # v4.2.0). Laissez Dependabot ou Renovate les mettre à jour.
  • N'utilisez jamais pull_request_target ou workflow_run pour cloner et exécuter du code PR non fiable avec des secrets. Les PR de forks ne doivent pas recevoir de secrets ou de jetons en écriture.
  • Empêchez l'injection de scripts : n'interpolez jamais directement le contexte non fiable (github.event.pull_request.title, corps des issues, noms de branches) dans run:. Passez-le via env: et entre guillemets la variable.
  • Utilisez OIDC (id-token: write) pour obtenir des identifiants cloud de courte durée au lieu de clés longue durée stockées comme secrets.
  • Placez les secrets de déploiement dans des environnements avec des réviseurs obligatoires et une protection de branche, pas dans les secrets à l'échelle du dépôt.
  • Ne faites pas écho des secrets ; soyez prudent avec set -x et les journaux de débogage.
  • Activez Dependabot pour npm et GitHub Actions, et exécutez un audit des dépendances ou un job de scan de code.

Déploiements

  • Déployez via des environnements (staging, production) avec des règles de protection et des URLs.
  • Rendez les déploiements idempotents et roll-back-ables (redéployez l'artefact ou le tag précédent).
  • Exécutez les migrations de base de données comme une étape distincte et ordonnée qui est rétrocompatible avec la version en cours d'exécution.
  • Utilisez des déploiements de prévisualisation par PR là où la plateforme le supporte, et commentez l'URL sur la PR.
  • Exécutez des tests de fumée contre l'URL déployée et échouez le job s'ils échouent.

Maintenabilité

  • Extrayez la configuration répétée dans une action composite ou un workflow réutilisable (workflow_call).
  • Nommez les jobs et les étapes clairement ; les vérifications de statut obligatoires dépendent des noms de jobs, donc renommez avec précaution.
  • Épinglez les images de runner (ubuntu-24.04) lorsque la reproductibilité est plus importante que les mises à jour automatiques.
  • Utilisez actionlint pour valider les fichiers de workflow.

Releases

  • Automatisez le versionnage et les changelogs à partir de commits conventionnels (par exemple release-please ou changesets).
  • Publiez les packages avec provenance (npm publish --provenance) là où OIDC est supporté.

Sortie

Décrivez le pipeline (déclencheurs, jobs, dépendances entre eux), le temps d'exécution prévu avant et après, les permissions accordées et pourquoi, les secrets et environnements requis, et toute configuration manuelle nécessaire dans les paramètres du dépôt (protection de branche, vérifications obligatoires, environnements).


Aller plus loin : Security Audit Pro et Observabilité & Réponse aux Incidents sont des packs de compétences premium avec des compétences liées, des templates de production, des scripts et des invites d'évaluation.

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

bentoms-dev/ai-feature-engineer

Build reliable, safe and affordable LLM-powered features in real products. Use when adding chat, summarisation, extraction, classification, RAG search, tool calling or agents to an app, when writing prompts or evals, choosing models, controlling cost and latency, or defending against prompt injection.

bentoms-dev/docs-readme-writer

Write developer documentation people actually read and trust. Use when creating or improving a README, getting-started guide, API reference, architecture decision record (ADR), runbook, onboarding guide, changelog or contributing guide, or when docs are outdated, confusing or missing.

bentoms-dev/postgres-migrations-engineer

Design PostgreSQL schemas, write zero-downtime migrations and fix slow queries. Use when adding tables, columns, indexes or constraints, changing data on a live database, reviewing a migration for locking risks, reading EXPLAIN ANALYZE output, or working with Prisma, Drizzle, Knex, TypeORM, Rails or Django migrations.

bentoms-dev/shopify-theme-architect

Build, refactor and review Shopify Online Store 2.0 themes. Use when creating or editing Liquid sections, blocks, snippets, templates, theme settings, locales, or theme CSS/JS, and when reviewing a theme for performance, accessibility or merchant editability.

bentoms-dev/test-engineer

Write tests that catch real bugs and survive refactors. Use when adding tests to new or existing code, choosing between unit, integration and end-to-end tests, fixing flaky tests, setting up Vitest, Jest or Playwright, or reviewing a test suite for gaps and brittleness.

Skills associés