Comprendre les flux de travail
Les flux de travail sont des processus automatisés que vous définissez pour générer, tester, empaqueter, mettre en production ou déployer votre projet. Ils se composent d’un ou plusieurs travaux qui s’exécutent en réponse à des événements spécifiques dans votre référentiel.
Structure de flux de travail
Chaque flux de travail inclut ces composants clés :
Déclencheurs (événements)
Définissez quand votre flux de travail doit s’exécuter : sur push, pull request, sur une base planifiée ou déclenchement manuel.
Jobs
Ensemble d’étapes qui s’exécutent sur le même exécuteur. Les travaux s’exécutent en parallèle par défaut, mais peuvent être configurés pour s’exécuter de manière séquentielle.
Étapes
Tâches individuelles au sein d’un travail qui peuvent exécuter des commandes, configurer des tâches ou utiliser des actions.
Exécuteurs
Environnement de calcul dans lequel vos travaux s’exécutent , hébergés par GitHub ou auto-hébergés.
Emplacement et nommage du flux de travail
Les flux de travail sont stockés sous forme de fichiers YAML dans le .github/workflows répertoire de votre référentiel. Le nom de fichier devient l’identificateur de flux de travail dans l’interface utilisateur GitHub.
Exemple de flux de travail moderne
Voici un exemple complet utilisant les meilleures pratiques actuelles :
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
- cron: "0 2 * * 0" # Weekly dependency check
env:
NODE_VERSION: "20"
jobs:
test:
name: Test and Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Run tests with coverage
run: npm run test:coverage
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
build:
name: Build Application
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-files
path: dist/
Améliorations clés des flux de travail modernes
Cet exemple illustre les meilleures pratiques actuelles :
-
Dernières versions des actions : utilisation
@v4de versions d’actions populaires - Mise en cache des dépendances : accélère l’exécution du flux de travail
- Variables d’environnement : gestion centralisée de la configuration
-
Dépendances de travail : le travail
builds’exécute uniquement aprèstestavoir réussi - Gestion des artefacts : stockage et partage appropriés des sorties de build
- Sécurité : utilisation de secrets pour des données sensibles telles que des jetons
Ressources supplémentaires
Explorez ces ressources pour améliorer vos connaissances de flux de travail :
- Flux de travail de démarrage - Modèles prédéfinis pour les scénarios courants
- Informations de référence sur la syntaxe du flux de travail - Documentation complète sur la syntaxe
- Actions de la Place de marché - Actions fournies par la communauté