Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

15 chapitres4 h 53 minIntermédiaire

Intégration et déploiement continus (CI/CD)

Cours CI/CD gratuit pour le BTS SIO : intégration continue, pipeline GitHub Actions et GitLab CI, Docker, secrets, déploiement et exercices corrigés.

Par Josselyn C., prof de BTS SIO. Mis à jour le .

L'essentiel

L'intégration continue (CI) et le déploiement continu (CD) confient à une machine ce que les équipes faisaient à la main à chaque modification du code : installer, vérifier, tester, empaqueter, puis livrer. À chaque push, un pipeline rejoue toutes ces étapes dans un environnement propre et affiche une coche verte ou une croix rouge. Au BTS SIO, c'est la compétence « Intégrer en continu les versions d'une solution applicative » du bloc 2 SLAM, une preuve solide pour ton épreuve E6, et un savoir-faire utile en SISR dès qu'il faut déployer un service sans erreur de manipulation.

À la fin de ce cours, tu sauras :

  • expliquer ce que sont l'intégration continue, la livraison continue et le déploiement continu, et ce qu'ils changent pour une équipe ;
  • concevoir un pipeline dans le bon ordre : installation, analyse, tests, construction, publication, déploiement ;
  • écrire et lire un workflow GitHub Actions complet (déclencheurs, jobs, matrice, cache, artefacts) et son équivalent GitLab CI ;
  • faire de la CI une barrière : tests obligatoires, protection de branche, analyse de code et des dépendances ;
  • gérer les secrets d'un pipeline sans jamais les exposer ;
  • construire une image Docker dans la CI, la déployer en recette puis en production, et revenir en arrière si ça casse ;
  • publier une version numérotée avec son tag, sa release et son journal des modifications.

Prérequis. Savoir utiliser Git et GitHub : commit, branche, pull request (cours Git et GitHub). Le chapitre GitHub Actions du cours Git est une bonne mise en bouche : ce cours repart de zéro, mais va beaucoup plus loin. Pour les chapitres 6, 7 et 9, des bases en tests automatisés (cours Tests), en sécurité applicative (cours Sécurité) et en Docker aident.

Le projet fil rouge. Tous les exemples portent sur sorbier-frais, l'API REST de notes de frais de Sorbier Logistique : une application Node.js 24 avec Express, une base MySQL 8.4 et des tests écrits avec Jest et supertest. Lina et Hugo, les deux développeurs, la versionnent sur GitHub. Les mêmes principes valent pour une application PHP, C# ou Python : un encadré donne l'équivalent quand la commande change.

Les versions du cours. Les workflows utilisent les versions des actions officielles en vigueur en novembre 2026 : actions/checkout@v7, actions/setup-node@v7, actions/upload-artifact@v7, actions/download-artifact@v8, actions/cache@v6, et pour Docker docker/login-action@v4, docker/setup-buildx-action@v4, docker/metadata-action@v6 et docker/build-push-action@v7. Quand une nouvelle version majeure sort, seul le numéro change : Dependabot peut le faire pour toi (chapitre 7).

Comment travailler. Crée un dépôt de test sur GitHub (public : les minutes de calcul y sont gratuites) et tape les workflows toi-même. Chaque chapitre se termine par des exercices dont la réponse est masquée : écrire un workflow, trouver une erreur, lire le journal d'un pipeline qui échoue. Cherche d'abord, ouvre ensuite.

Ton objectifChapitres à travailler en priorité
Comprendre la CI/CD en une heure1, 2 et 6
Mettre une CI sur ton projet d'E62, 3, 4, 6 et 13
Utiliser GitLab plutôt que GitHub1, 2, 5 et 8
Déployer automatiquement une application (SLAM ou SISR)8 à 12
Préparer les questions sécurité de l'E7 SLAM7 et 8
Réviser avant un oral ou un contrôle14 et 15

Sommaire

0%

CI/CD

0 chapitre sur 15

  1. Chapitre 1 : C'est quoi l'intégration continue (CI/CD) ?13 min
  2. Chapitre 2 : Les étapes d'un pipeline CI/CD14 min
  3. Chapitre 3 : GitHub Actions : écrire un workflow YAML35 min
  4. Chapitre 4 : Matrice, cache et artefacts dans GitHub Actions22 min
  5. Chapitre 5 : GitLab CI : le fichier .gitlab-ci.yml26 min
  6. Chapitre 6 : Tests automatisés dans la CI et protection de branche21 min
  7. Chapitre 7 : Sécurité dans la CI : SAST, dépendances et secrets (DevSecOps)21 min
  8. Chapitre 8 : Secrets et variables dans un pipeline18 min
  9. Chapitre 9 : Construire et publier une image Docker dans la CI20 min
  10. Chapitre 10 : Environnements : développement, recette, production17 min
  11. Chapitre 11 : Déployer automatiquement une application (CD)25 min
  12. Chapitre 12 : Stratégies de déploiement : blue-green, canary et rollback16 min
  13. Chapitre 13 : Publier une version : SemVer, tags et releases16 min
  14. Chapitre 14 : Exercices corrigés CI/CD : workflows et journaux d'erreurs19 min
  15. Chapitre 15 : Aide-mémoire CI/CD : GitHub Actions et GitLab CI9 min
Commencer le cours

Questions fréquentes

C'est quoi l'intégration continue ?

L'intégration continue (CI) est une pratique de développement : chaque développeur intègre son travail dans la branche commune plusieurs fois par jour, et chaque intégration est vérifiée automatiquement par un pipeline qui installe les dépendances, analyse le code et lance les tests. Une erreur est ainsi détectée quelques minutes après le commit, au lieu du jour de la livraison. Les outils les plus courants sont GitHub Actions, GitLab CI et Jenkins (la CI/CD expliquée).

Quelle est la différence entre CI et CD ?

La CI vérifie automatiquement chaque modification du code (construction, analyse, tests). Le CD prolonge la CI jusqu'à la mise en ligne : en livraison continue, chaque version validée est prête et déployée en recette, mais la mise en production reste une décision humaine ; en déploiement continu, elle part automatiquement en production. La seule différence entre les deux CD est cette barrière humaine (livraison et déploiement continus).

C'est quoi un pipeline CI/CD ?

Un pipeline est la suite automatisée d'étapes qui transforme un commit en version livrée : récupération du code, installation, lint, tests, construction, analyse de sécurité, empaquetage, publication, déploiement. Chaque étape est une commande ; si elle renvoie un code d'erreur, le pipeline s'arrête. On place les étapes rapides en premier pour échouer vite (les étapes d'un pipeline).

GitHub Actions est-il gratuit ?

Oui pour les dépôts publics : les runners standards de GitHub y sont gratuits et illimités. Pour les dépôts privés, l'offre gratuite inclut chaque mois un crédit équivalent à environ 2 000 minutes sur Linux et 500 Mo de stockage d'artefacts ; Windows et macOS consomment ce crédit plus vite. Les étudiants obtiennent GitHub Pro avec le GitHub Student Developer Pack (les runners et leur coût).

Quelle différence entre GitHub Actions et GitLab CI ?

Les notions sont les mêmes (pipeline, jobs, runners, artefacts, secrets), la syntaxe diffère. GitHub Actions répartit le pipeline dans plusieurs fichiers .github/workflows/*.yml et réutilise des actions publiées ; GitLab CI utilise un seul .gitlab-ci.yml, organisé en stages, où chaque job tourne dans une image Docker. GitLab s'installe facilement dans l'entreprise, ce qui explique sa présence dans les administrations (GitLab CI et ses équivalences).

Comment stocker un mot de passe dans un pipeline ?

Jamais dans le fichier du workflow ni dans le code : dans les secrets de la forge (Settings, Secrets and variables, Actions sur GitHub ; Settings, CI/CD, Variables sur GitLab). Le secret est chiffré, injecté au moment de l'exécution et masqué dans les journaux. Pour la production, range-le dans un environnement protégé par une approbation, et pour un cloud, préfère OIDC, qui évite tout secret permanent (secrets et variables).

C'est quoi le déploiement blue-green et le déploiement canary ?

En blue-green, deux environnements de production identiques coexistent : on déploie la nouvelle version sur celui qui ne reçoit pas de trafic, puis on bascule tout le trafic d'un coup ; le retour arrière consiste à rebasculer. En canary, la nouvelle version ne reçoit d'abord qu'une petite part du trafic (5 ou 10 %), et on l'augmente par paliers si les indicateurs restent bons. Les deux évitent la coupure, mais demandent un schéma de base compatible entre les versions (stratégies de déploiement).

C'est quoi DevSecOps ?

DevSecOps consiste à intégrer la sécurité à chaque étape du développement plutôt qu'à la fin, en automatisant des contrôles dans le pipeline : analyse du code (SAST), des dépendances (SCA), détection des secrets, analyse des images Docker, tests de l'application en recette (DAST). Il protège aussi le pipeline lui-même : droits minimaux, actions épinglées, secrets cloisonnés (la sécurité dans la CI).

L'intégration continue est-elle au programme du BTS SIO ?

Oui. Le référentiel de 2024 cite, dans le bloc 2 SLAM évalué à l'épreuve E6, la compétence « Intégrer en continu les versions d'une solution applicative », et le bloc 1, commun aux deux options et évalué à l'E5, demande de « déployer un service ». Les indicateurs de sécurité du bloc 3 SLAM, évalués à l'écrit E7, portent aussi sur des composants « sécurisés et actualisés » et des tests de sécurité. Un pipeline sur ton projet, avec une protection de branche et un déploiement en recette, en est la preuve la plus convaincante (la CI/CD dans le référentiel).