Bases & Syntaxe
Workflow trigger
on:
push:
branches: [ main ]
Définir les événements qui déclenchent le workflow
Jobs
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
Définir un job et spécifier où il doit être exécuté
Structures de Données
Variables d'environnement
env:
MY_VAR: my_value
Définir des variables d'environnement pour le workflow
Inputs & Outputs
inputs:
my_input:
description: 'Description'
required: true
default: 'default value'
outputs:
my_output:
description: 'Description'
Utiliser les inputs et outputs pour passer des données entre les jobs ou les steps
Fonctions & Méthodes Essentielles
Actions
- name: Run a one-line script
run: echo Hello, world!
Exécuter un script simple
Checkout
- uses: actions/checkout@v2
Extraire le code source dans le job
Utiliser une action personnalisée
- name: Run a custom action
uses: username/repo@tag
with:
param1: value1
Exécuter une action définie par une autre personne ou organisation
Patterns Courants
Multi-environnements (Développement, Staging, Production)
on:
push:
branches:
- develop
- staging
- main
jobs:
build: # ...
test: # ...
deploy-dev:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
steps:
# ...
Définir des workflows pour différents environnements
Utiliser les secrets
- name: Run a script with secret
run: echo $secrets.MY_SECRET
Accéder aux secrets définis dans le repository
Opérations Avancées
Matrices de tests
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Use Node.js $matrix.node-version
uses: actions/setup-node@v2
with:
node-version: $matrix.node-version
Tester votre application sur plusieurs versions de Node.js
Utiliser des déploiements conditionnels
- name: Deploy to production
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
# ...
Déployer uniquement sur des pousses spécifiques
Debugging & Outils
Utiliser les logs
- name: Run a script and log output
run: echo "Hello, world!"
shell: bash -l
Afficher le flux de sortie standard et d'erreur pour déboguer
Actions de débogage
- uses: actions/debug@v1
Utiliser des actions spéciales pour aider au débogage
Accéder aux artefacts
- name: Upload an artifact
uses: actions/upload-artifact@v2
with:
name: my_artifact
path: /path/to/artifact
Stocker les résultats d'un travail pour les utiliser plus tard