Aller au contenu principal

Introduction à GitHub Actions


Table des matières

  1. Qu'est-ce que GitHub Actions ?
  2. Concepts clés
  3. Avantages de GitHub Actions
  4. Premier workflow
  5. Interface GitHub Actions
  6. Exercices pratiques


1 - Qu'est-ce que GitHub Actions ?

Définition

GitHub Actions est une plateforme d'automatisation CI/CD intégrée directement dans GitHub. Elle permet d'automatiser des tâches en réponse à des événements sur votre repository.

Cas d'utilisation

CatégorieExemples
CITests automatiques, linting, build
CDDéploiement staging/production
AutomationRelease notes, labels automatiques
SecurityScan de vulnérabilités, audit
DevOpsInfrastructure as Code, backups

Comparaison avec d'autres outils

OutilTypeAvantagesInconvénients
GitHub ActionsIntégréGratuit, natif GitHubLimité à GitHub
JenkinsSelf-hostedTrès flexibleMaintenance
GitLab CIIntégréCompletÉcosystème GitLab
CircleCISaaSPerformanceCoût

🔝 Retour à la table des matières



2 - Concepts clés

Vocabulaire essentiel

Définitions

TermeDescription
WorkflowFichier YAML définissant l'automatisation
EventDéclencheur (push, PR, schedule...)
JobEnsemble de steps exécutés sur un runner
StepTâche individuelle (action ou commande)
ActionBloc réutilisable (du Marketplace ou custom)
RunnerMachine qui exécute les jobs
ArtifactFichier produit par un workflow

Structure de fichiers

.github/
└── workflows/
├── ci.yml # Tests et build
├── cd.yml # Déploiement
└── release.yml # Publication

Types de runners

RunnerOSSpecsUsage
ubuntu-latestLinux2 CPU, 7GB RAMPar défaut
windows-latestWindows2 CPU, 7GB RAMApps Windows
macos-latestmacOS3 CPU, 14GB RAMApps iOS/macOS
Self-hostedCustomVotre matérielBesoins spécifiques

🔝 Retour à la table des matières



3 - Avantages de GitHub Actions

Pourquoi choisir GitHub Actions ?

AvantageDescription
IntégréPas de configuration externe
Gratuit2000 min/mois pour les repos publics
Marketplace+15000 actions prêtes à l'emploi
YAMLConfiguration as Code versionné
Multi-OSLinux, Windows, macOS
CommunautéDocumentation et support riches

Tarification

PlanMinutes/moisStockage
Free2,000500 MB
Team3,0002 GB
Enterprise50,00050 GB
Astuce

Les repos publics ont des minutes illimitées et gratuites !

Écosystème

🔝 Retour à la table des matières



4 - Premier workflow

Hello World

# .github/workflows/hello.yml
name: Hello World

on:
push:
branches: [main]
workflow_dispatch: # Permet l'exécution manuelle

jobs:
greet:
runs-on: ubuntu-latest

steps:
- name: Say Hello
run: echo "Hello, GitHub Actions! 🚀"

- name: Show date
run: date

- name: Show system info
run: |
echo "OS: $(uname -a)"
echo "User: $(whoami)"
echo "Directory: $(pwd)"

Explication ligne par ligne

name: Hello World          # Nom affiché dans l'interface
on: # Événements déclencheurs
push:
branches: [main] # Seulement sur la branche main
jobs: # Liste des jobs
greet: # Nom du job
runs-on: ubuntu-latest # Runner à utiliser
steps: # Liste des étapes
- name: Say Hello # Nom de l'étape
run: echo "..." # Commande shell

Créer le workflow

# Dans votre repo
mkdir -p .github/workflows
nano .github/workflows/hello.yml
# Collez le contenu ci-dessus

git add .github/workflows/hello.yml
git commit -m "Add first workflow"
git push

Workflow avec checkout

name: Build Project

on: [push]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: List files
run: ls -la

- name: Show README
run: cat README.md || echo "No README"

🔝 Retour à la table des matières



5 - Interface GitHub Actions

Accéder aux workflows

  1. Aller sur votre repository GitHub
  2. Cliquer sur l'onglet Actions
  3. Voir les workflows disponibles
  4. Cliquer sur un run pour les détails

Éléments de l'interface

ÉlémentDescription
WorkflowsListe des workflows définis
RunsHistorique des exécutions
JobsJobs d'un run spécifique
LogsSortie détaillée de chaque step
ArtifactsFichiers produits
SummaryRésumé du run

Statuts

StatutIcôneSignification
SuccessTous les jobs réussis
FailureAu moins un job échoué
CancelledAnnulé manuellement
Skipped⏭️Job sauté (condition)
In progress🟡En cours d'exécution
QueuedEn attente d'un runner

Badges de statut

<!-- Dans votre README.md -->
![CI](https://github.com/USER/REPO/actions/workflows/ci.yml/badge.svg)

🔝 Retour à la table des matières



6 - Exercices pratiques

Exercice 1 : Premier workflow

Créez un workflow qui affiche "Hello from GitHub Actions!" à chaque push :

Solution
# .github/workflows/hello.yml
name: Hello

on: [push]

jobs:
hello:
runs-on: ubuntu-latest
steps:
- run: echo "Hello from GitHub Actions!"

Exercice 2 : Workflow avec informations système

Créez un workflow qui affiche les informations du runner :

Solution
name: System Info

on: [push]

jobs:
info:
runs-on: ubuntu-latest
steps:
- name: OS Info
run: |
echo "OS: $(uname -s)"
echo "Kernel: $(uname -r)"
echo "Architecture: $(uname -m)"

- name: Disk Space
run: df -h

- name: Memory
run: free -h

Quiz

Q1. Où sont stockés les fichiers de workflow ?

Réponse

Dans .github/workflows/ à la racine du repository.

Q2. Quel runner est recommandé par défaut ?

Réponse

ubuntu-latest - C'est le plus rapide et le moins cher.

Q3. Quelle action permet de récupérer le code du repo ?

Réponse

actions/checkout@v4

🔝 Retour à la table des matières



Points clés à retenir

  • GitHub Actions = CI/CD intégré à GitHub
  • Workflows définis en YAML dans .github/workflows/
  • Déclenchés par des events (push, PR, schedule...)
  • Exécutés sur des runners (ubuntu, windows, macos)
  • actions/checkout pour récupérer le code
  • Gratuit pour les repos publics

🔝 Retour à la table des matières


Chapitre suivant : Syntaxe des workflows →