DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesGitLab CI avancé : review apps, cache et multi-projets04 - Réutiliser des templates avec include

Détails

  • 25 minutes
  • Avancé

Objectifs

  • Inclure un template officiel GitLab avec include template
  • Réutiliser la configuration d'un autre projet avec include project
  • Inclure un fichier local avec include local
  • Créer son propre template réutilisable
Module GitLab CI avancé : review apps, cache et multi-projets

Exercice 04 : Réutiliser des templates avec include

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Utiliser include: template: pour intégrer des templates officiels GitLab (ex: SAST)
  • ✅ Partager des configurations via include: project: depuis un autre dépôt
  • ✅ Inclure un fichier local avec include: local:
  • ✅ Créer et maintenir votre propre bibliothèque de templates CI/CD

Durée estimée : 25 minutes

Difficulté : ⭐⭐⭐⭐☆ (Avancé)

Prérequis :

  • Module GitLab CI Intermédiaire complété (extends, ancres YAML)
  • Accès à un groupe ou organisation GitLab

📖 Contexte

include: permet de composer un pipeline à partir de plusieurs fichiers YAML. C'est le mécanisme clé pour standardiser les pipelines à l'échelle d'une organisation : les équipes platform maintiennent des templates centraux, les équipes produit les incluent dans leurs pipelines. GitLab propose aussi des templates officiels prêts à l'emploi (SAST, DAST, code quality...).


📋 Énoncé

Créez un pipeline modulaire qui inclut un template local de déploiement, un template officiel GitLab de sécurité, et un template partagé depuis un projet central de l'organisation.


🧭 Déroulement de l'exercice

Tâche 1 : Créer et inclure un fichier local

Créez un fichier .gitlab/ci/build.yml dans votre dépôt avec un job build-app. Incluez ce fichier dans votre .gitlab-ci.yml principal avec include: local:.

Indice :

`yaml

# .gitlab-ci.yml

include:

- local: .gitlab/ci/build.yml

>

stages:

- build

`

`yaml

# .gitlab/ci/build.yml

build-app:

stage: build

image: node:20-alpine

script:

- echo "Build depuis le template local"

`

local: fait référence à un fichier dans le même dépôt, au même commit. Le chemin est relatif à la racine du dépôt.

Vérification : Le job build-app défini dans .gitlab/ci/build.yml apparaît dans le pipeline.


Tâche 2 : Inclure un template officiel GitLab (SAST)

Ajoutez dans include: le template officiel de SAST (Static Application Security Testing) de GitLab.

Indice :

`yaml

include:

- template: Security/SAST.gitlab-ci.yml

`

GitLab maintient des dizaines de templates officiels dans le projet gitlab-org/gitlab. La liste complète est visible sur : https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates

Vérification : Des jobs préfixés semgrep ou sast apparaissent automatiquement dans votre pipeline après l'include.


Tâche 3 : Inclure depuis un autre projet (templates centraux)

Simulez un projet central de templates en créant un second projet GitLab ci-templates avec un fichier deploy.yml. Incluez ce fichier dans votre projet via include: project:.

Indice :

`yaml

include:

- project: 'mon-groupe/ci-templates'

ref: main

file: deploy.yml

`

ref: peut être une branche, un tag ou un SHA de commit. Utiliser un tag versionné (ex: ref: v1.2.0) garantit la stabilité : votre pipeline n'est pas cassé par une modification du template central.

Vérification : Le job défini dans ci-templates/deploy.yml apparaît dans votre pipeline.


Tâche 4 : Combiner plusieurs includes

Dans un seul .gitlab-ci.yml, combinez les trois types d'include : local:, template: et project:. Définissez aussi un job directement dans le fichier principal.

Indice :

`yaml

include:

- local: .gitlab/ci/build.yml

- template: Security/SAST.gitlab-ci.yml

- project: 'mon-groupe/ci-templates'

ref: main

file: deploy.yml

`

L'ordre dans include: détermine l'ordre d'évaluation. En cas de conflit de noms de jobs, le dernier fichier inclus gagne.

Vérification : Le CI Lint valide le fichier combiné et tous les jobs des différentes sources apparaissent.


Tâche 5 : Créer un template avec des inputs

Créez un template local paramétrable avec spec: inputs: qui accepte un paramètre environment et l'utilise dans le job.

Indice :

`yaml

# .gitlab/ci/deploy-template.yml

spec:

inputs:

environment:

default: staging

>

deploy-$[[ inputs.environment ]]:

script:

- echo "Déploiement sur $[[ inputs.environment ]]"

`

`yaml

# .gitlab-ci.yml

include:

- local: .gitlab/ci/deploy-template.yml

inputs:

environment: production

`

Les inputs sont une fonctionnalité GitLab 15.11+ qui rend les templates réellement paramétrables.

Vérification : Le job deploy-production est généré dynamiquement depuis le template avec l'input environment: production.


🗂️ Mini-Projet : Pipeline modulaire avec include

Checkpoints de validation :

  • Le fichier .gitlab/ci/build.yml est inclus avec local: et son job s'exécute
  • Le template SAST officiel ajoute des jobs de sécurité automatiquement
  • include: project: fonctionne depuis un dépôt externe
  • La combinaison des trois includes passe le CI Lint
  • Le template paramétrable avec spec: inputs: génère un job dynamique

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer et inclure un fichier local
  • Tâche 2 : Inclure un template officiel GitLab (SAST)
  • Tâche 3 : Inclure depuis un autre projet (templates centraux)
  • Tâche 4 : Combiner plusieurs includes
  • Tâche 5 : Créer un template avec des inputs
  • 🗂️ Mini-Projet : Pipeline modulaire avec include