6.3 KiB
Utilisation des Workflows GitHub Actions
Ce document explique comment utiliser les workflows GitHub Actions pour builder et tester le projet Void.
Table des Matières
- Exécution des Workflows
- Workflow Principal (build.yml)
- Build de la CLI
- Build des Extensions
- Build Web
- Publication des Artifacts
- Analyse CodeQL
- Triage des Issues
- Exécution Locale
- Dépannage
Exécution des Workflows
Déclenchement Automatique
Tous les workflows sont configurés pour s'exécuter automatiquement dans les cas suivants :
- Push sur la branche
master - Pull Request vers la branche
master - Planifié (pour certains workflows comme
triage.ymletcodeql-analysis.yml)
Déclenchement Manuel
Vous pouvez déclencher manuellement n'importe quel workflow :
- Allez dans l'onglet Actions de votre dépôt GitHub
- Sélectionnez le workflow que vous souhaitez exécuter
- Cliquez sur le bouton Run workflow
- Cliquez sur Run workflow à nouveau pour confirmer
Workflow Principal (build.yml)
Ce workflow est le cœur du processus de build et de test.
Jobs disponibles :
- compile : Compile le projet
- test-unit : Exécute les tests unitaires sur Linux
- test-browser : Exécute les tests navigateur
- lint : Exécute ESLint et Stylelint
- hygiene : Exécute les vérifications d'hygiène
Comment utiliser :
# Pour voir les résultats des builds
cd /Users/jcommaret/Sites/void
npm run compile
# Pour exécuter les tests unitaires
npm run test-node
# Pour exécuter les tests navigateur
npm run playwright-install
npm run test-browser
# Pour exécuter le linting
npm run eslint
npm run stylelint
# Pour exécuter les vérifications d'hygiène
npm run hygiene
Build de la CLI
La CLI est écrite en Rust et peut être buildée sur différentes plateformes.
Build sur Linux/macOS/Windows :
cd cli
cargo build --release
Exécution des tests :
cd cli
cargo test
Build multi-plateforme :
Le workflow build-cli-matrix.yml build la CLI sur :
- Ubuntu 22.04
- macOS 12
- Windows 2022
Build des Extensions
Les extensions sont buildées séparément pour permettre une mise à jour indépendante.
Comment build les extensions :
npm run compile-extensions-build
Build Web
La version web de Void peut être buildée séparément.
Comment build la version web :
npm run compile-web
Publication des Artifacts
Le workflow publish-artifacts.yml compile tous les composants et les package pour distribution.
Comment exécuter manuellement :
- Allez dans l'onglet Actions
- Sélectionnez Publish Build Artifacts
- Cliquez sur Run workflow
Artifacts produits :
out/: Build principalvoid-cli-linux: Binaire CLI pour Linuxout-vscode/: Build web
Analyse CodeQL
Le workflow codeql-analysis.yml effectue une analyse statique du code pour détecter les problèmes de sécurité et de qualité.
Comment voir les résultats :
- Allez dans l'onglet Security de votre dépôt
- Sélectionnez Code scanning
- Vous verrez les alertes détectées par CodeQL
Triage des Issues
Le workflow triage.yml utilise l'IA pour trier automatiquement les issues GitHub.
Comment configurer :
Vous devez configurer les secrets suivants dans votre dépôt :
OPENAI_API_KEY: Clé API OpenAIWIKI_TOKEN: Token GitHub avec accès wiki
Comment exécuter manuellement :
- Allez dans l'onglet Actions
- Sélectionnez Issue Triage to Wiki
- Cliquez sur Run workflow
Exécution Locale
Vous pouvez tester les workflows localement en utilisant act (GitHub Actions runner).
Installation :
brew install act
Exécution d'un workflow :
act -j build
Exécution de tous les workflows :
act
Dépannage
Problème : Le workflow ne se déclenche pas
Solutions :
- Vérifiez que le workflow est bien dans
.github/workflows/ - Vérifiez la section
ondu workflow YAML - Vérifiez que le workflow n'est pas désactivé dans les paramètres du dépôt
- Vérifiez que vous avez les permissions nécessaires
Problème : Le workflow échoue
Solutions :
- Vérifiez les logs du workflow pour voir où il échoue
- Vérifiez que toutes les dépendances sont installées
- Vérifiez que les variables d'environnement sont correctement configurées
- Vérifiez que vous avez assez d'espace disque
- Vérifiez que vous avez assez de mémoire
Problème : Le workflow prend trop de temps
Solutions :
- Vérifiez que tous les jobs ont des timeouts configurés
- Vérifiez qu'il n'y a pas de boucles infinies dans le code
- Vérifiez que les dépendances sont bien cachées
- Vérifiez que vous n'avez pas de processus qui s'exécutent indéfiniment
Problème : Les artifacts ne sont pas disponibles
Solutions :
- Vérifiez que le job qui produit les artifacts a réussi
- Vérifiez que les artifacts sont bien configurés dans le workflow
- Vérifiez que vous avez les permissions pour télécharger les artifacts
- Vérifiez que les artifacts n'ont pas expiré (durée de conservation par défaut : 30 jours)
Bonnes Pratiques
- Commitez souvent : Plus vous commitez souvent, plus les workflows s'exécutent souvent, ce qui permet de détecter les problèmes plus tôt
- Utilisez des branches de feature : Créez des branches de feature pour développer de nouvelles fonctionnalités et utilisez des pull requests pour les fusionner
- Vérifiez les workflows avant de fusionner : Assurez-vous que tous les workflows passent avant de fusionner une pull request
- Nettoyez les artifacts : Supprimez les artifacts inutiles pour économiser de l'espace de stockage
- Documentez les changements : Documentez les changements apportés aux workflows dans les pull requests