Créer une spécification GitHub Actions Workflow
Créez une spécification complète pour le workflow GitHub Actions : ${input:WorkflowFile}.
Cette spécification sert de spécification pour le comportement, les exigences et les contraintes du workflow. Elle doit être indépendante de l'implémentation, en se concentrant sur ce que le workflow accomplit plutôt que sur comment il est implémenté.
Exigences optimisées pour l'IA
- Efficacité en tokens : Utiliser un langage concis sans sacrifier la clarté
- Données structurées : Tirer parti des tableaux, listes et diagrammes pour l'information dense
- Clarté sémantique : Utiliser une terminologie précise et cohérente
- Abstraction d'implémentation : Éviter les syntaxes, commandes ou versions d'outils spécifiques
- Maintenabilité : Concevoir pour des mises à jour faciles à mesure que le workflow évolue
Modèle de spécification
Enregistrer sous : /spec/spec-process-cicd-[nom-workflow].md
---
title: Spécification CI/CD Workflow - [Nom du Workflow]
version: 1.0
date_created: [YYYY-MM-DD]
last_updated: [YYYY-MM-DD]
owner: DevOps Team
tags: [process, cicd, github-actions, automation, [domaine-tags]]
---
## Aperçu du Workflow
**Objectif** : [Une phrase décrivant l'objectif principal du workflow]
**Événements de déclenchement** : [Lister les conditions de déclenchement]
**Environnements cibles** : [Portée environnementale]
## Diagramme de flux d'exécution
```mermaid
graph TD
A[Trigger Event] --> B[Job 1]
B --> C[Job 2]
C --> D[Job 3]
D --> E[End]
B --> F[Parallel Job]
F --> D
style A fill:#e1f5fe
style E fill:#e8f5e8
Jobs et dépendances
| Nom du Job |
Objectif |
Dépendances |
Contexte d'exécution |
| job-1 |
[Objectif] |
[Prérequis] |
[Runner/Environnement] |
| job-2 |
[Objectif] |
job-1 |
[Runner/Environnement] |
Matrice d'exigences
Exigences fonctionnelles
| ID |
Exigence |
Priorité |
Critères d'acceptation |
| REQ-001 |
[Exigence] |
Haute |
[Critères testables] |
| REQ-002 |
[Exigence] |
Moyenne |
[Critères testables] |
Exigences de sécurité
| ID |
Exigence |
Contrainte d'implémentation |
| SEC-001 |
[Exigence de sécurité] |
[Description contrainte] |
Exigences de performance
| ID |
Métrique |
Cible |
Méthode de mesure |
| PERF-001 |
[Métrique] |
[Valeur cible] |
[Comment mesurer] |
Contrats entrée/sortie
Entrées
# Variables d'environnement
ENV_VAR_1: string # Objectif : [description]
ENV_VAR_2: secret # Objectif : [description]
# Déclencheurs de repository
paths: [liste de filtres de chemin]
branches: [liste de patterns de branche]
Sorties
# Sorties de job
job_1_output: string # Description : [objectif]
build_artifact: file # Description : [type contenu]
Secrets et variables
| Type |
Nom |
Objectif |
Portée |
| Secret |
SECRET_1 |
[Objectif] |
Workflow |
| Variable |
VAR_1 |
[Objectif] |
Repository |
Contraintes d'exécution
Contraintes runtime
- Timeout : [Temps d'exécution maximal]
- Concurrence : [Limites d'exécution parallèle]
- Limites de ressources : [Contraintes mémoire/CPU]
Contraintes environnementales
- Exigences du runner : [Besoins OS/matériel]
- Accès réseau : [Besoins de connectivité externe]
- Permissions : [Niveaux d'accès requis]
Stratégie de gestion des erreurs
| Type d'erreur |
Réponse |
Action de récupération |
| Échec de build |
[Réponse] |
[Étapes de récupération] |
| Échec de test |
[Réponse] |
[Étapes de récupération] |
| Échec de déploiement |
[Réponse] |
[Étapes de récupération] |
Portes de qualité
Définitions des portes
| Porte |
Critères |
Conditions de contournement |
| Qualité du code |
[Normes] |
[Quand autorisé] |
| Scan sécurité |
[Seuils] |
[Quand autorisé] |
| Couverture de test |
[Pourcentage] |
[Quand autorisé] |
Monitoring et observabilité
Métriques clés
- Taux de succès : [Pourcentage cible]
- Temps d'exécution : [Durée cible]
- Utilisation des ressources : [Approche monitoring]
Alerting
| Condition |
Sévérité |
Cible de notification |
| [Condition] |
[Niveau] |
[Qui/Où] |
Points d'intégration
Systèmes externes
| Système |
Type d'intégration |
Échange de données |
Exigences SLA |
| [Système] |
[Type] |
[Format de données] |
[Exigences] |
Workflows dépendants
| Workflow |
Relation |
Mécanisme de déclenchement |
| [Workflow] |
[Type] |
[Comment déclenché] |
Conformité et gouvernance
Exigences d'audit
- Journaux d'exécution : [Politique de rétention]
- Portes d'approbation : [Approbations requises]
- Contrôle des changements : [Processus de mise à jour]
Contrôles de sécurité
- Contrôle d'accès : [Modèle de permission]
- Gestion des secrets : [Politique de rotation]
- Scan de vulnérabilité : [Fréquence de scan]
Cas limites et exceptions
Matrice de scénarios
| Scénario |
Comportement attendu |
Méthode de validation |
| [Cas limite] |
[Comportement] |
[Comment vérifier] |
Critères de validation
Validation du workflow
- VLD-001 : [Règle de validation]
- VLD-002 : [Règle de validation]
Benchmarks de performance
- PERF-001 : [Critères de benchmark]
- PERF-002 : [Critères de benchmark]
Gestion des changements
Processus de mise à jour
- Mise à jour de spécification : Modifier d'abord ce document
- Révision et approbation : [Processus d'approbation]
- Implémentation : Appliquer les changements au workflow
- Tests : [Approche de validation]
- Déploiement : [Processus de release]
Historique des versions
| Version |
Date |
Changements |
Auteur |
| 1.0 |
[Date] |
Spécification initiale |
[Auteur] |
Spécifications connexes
- [Lien vers specs de workflows connexes]
- [Lien vers specs d'infrastructure]
- [Lien vers specs de déploiement]
## Instructions d'analyse
Lors de l'analyse du fichier de workflow :
1. **Extraire l'objectif principal** : Identifier l'objectif métier primaire
2. **Mapper le flux de jobs** : Créer un graphe de dépendances montrant l'ordre d'exécution
3. **Identifier les contrats** : Documenter les entrées, sorties et interfaces
4. **Capturer les contraintes** : Extraire les timeouts, permissions et limites
5. **Définir les portes de qualité** : Identifier les points de validation et approbation
6. **Documenter les chemins d'erreur** : Mapper les scénarios d'échec et récupération
7. **Abstraire l'implémentation** : Se concentrer sur le comportement, pas la syntaxe
## Directives de diagramme Mermaid
### Types de flux
- **Séquentiel** : `A --> B --> C`
- **Parallèle** : `A --> B & A --> C; B --> D & C --> D`
- **Conditionnel** : `A --> B{Decision}; B -->|Yes| C; B -->|No| D`
### Styles
```mermaid
style TriggerNode fill:#e1f5fe
style SuccessNode fill:#e8f5e8
style FailureNode fill:#ffebee
style ProcessNode fill:#f3e5f5
Workflows complexes
Pour les workflows avec 5+ jobs, utiliser les subgraphes :
graph TD
subgraph "Build Phase"
A[Lint] --> B[Test] --> C[Build]
end
subgraph "Deploy Phase"
D[Staging] --> E[Production]
end
C --> D
Stratégies d'optimisation des tokens
- Utiliser des tableaux : Information dense en format structuré
- Abréviations cohérentes : Définir une fois, utiliser partout
- Points de liste : Éviter les paragraphes en prose
- Blocs de code : Données structurées plutôt que narrative
- Références croisées : Lier plutôt que répéter l'information
Concentrez-vous sur la création d'une spécification qui sert à la fois de documentation et de modèle pour les mises à jour du workflow.