Toutes les variables
Les variables se définissent dans le .gitlab-ci.yml du projet, ou dans GitLab (Settings / CI/CD / Variables) quand elles sont confidentielles ou qu'elles changent selon l'environnement. Chaque page de job liste celles dont il a besoin.
Socle
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| CI_TEMPLATE_VERSION | Version des templates : tag du projet kgaut/gitlab-ci-templates | 0.4.32 | sert aux include et au téléchargement des scripts |
| CI_TEMPLATE_SCRIPTS_URL | URL du dossier scripts/ des templates, à la version utilisée | https://gitlab.exemple.fr/kgaut/gitlab-ci-templates/-/raw/0.4.32/scripts | par défaut sur l'instance qui exécute le pipeline : $CI_SERVER_URL/kgaut/gitlab-ci-templates/-/raw/$CI_TEMPLATE_VERSION/scripts |
| PREPROD_BRANCH | Nom de la branche de l'environnement de preprod | preprod | par défaut preprod |
| ENV_PROD_DISABLED | Désactiver l'environnement de prod | 1 | par défaut 0 |
| ENV_PREPROD_DISABLED | Désactiver l'environnement de preprod | 1 | par défaut 0 |
Connexion au serveur
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| SSH_CHAIN | Chaine de connexion SSH | ssh user@127.0.0.1 | avec -p <port> si le port n'est pas 22 |
| SSH_USER | Utilisateur ssh | user | utilisé par les envois rsync |
| SSH_HOST | IP ou hostname du serveur | 127.0.0.1 | utilisé par les envois rsync et le balayage des clés d'hôte |
| SSH_PORT | Port SSH du serveur si différent de 22 | 2222 | par défaut 22 |
| SSH_PRIVATE_KEY | Clé ssh privée pour se connecter au serveur | Comment générer une clé ssh | |
| SSH_KNOWN_HOSTS | Clés d'hôte du serveur, au format known_hosts (variable CI de type « Variable » ou « File ») | serveur.fr ssh-ed25519 AAAA… | Clés d'hôte SSH ; non définie, le serveur est balayé à chaque job ; définie mais vide, le job échoue |
| SSH_KNOWN_HOSTS_FILE | Fichier known_hosts versionné dans le projet, relatif à sa racine | .gitlab/ssh_known_hosts | utilisé si SSH_KNOWN_HOSTS est vide ; absent, vide ou sans le serveur visé, le job échoue |
| PROJECT_ROOT | Chemin relatif ou absolu vers la racine du projet sur le serveur | ~/public_html | |
| PROJECT_URL | Url du site, utilisée dans le nom des dumps | monsite.com |
Sauvegardes et diffs
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| DB_PATH | Dossier relatif à la racine du projet devant contenir les dumps | files/dumps | créé au besoin |
| DISABLE_PROD_DUMP_ON_DEPLOY | Désactiver le backup prod lors des déploiements | 1 | par défaut 0 |
| DISABLE_PREPROD_DUMP_ON_DEPLOY | Désactiver le backup preprod lors des déploiements | 1 | par défaut 0 |
| MYSQL_BACKUP_DATABASE | Base sauvegardée par mysql-backup | monsite_pp | par environnement |
| MYSQL_BACKUP_KEEP | Nombre de dumps conservés par environnement par mysql-backup | 2 | par défaut 3 |
| DAYS_DUMP_TO_KEEP | Nombre de jours de dump à garder | 7 | par défaut 7 |
| DAYS_DUMP_TO_KEEP_PROD | Nombre de jours de dump à garder en prod | 7 | par défaut $DAYS_DUMP_TO_KEEP |
| DAYS_DUMP_TO_KEEP_PREPROD | Nombre de jours de dump à garder en preprod | 3 | par défaut $DAYS_DUMP_TO_KEEP |
| DIFFS_PATH | Dossier relatif à la racine du projet devant contenir les patchs générés par les jobs de diff | files/diffs | créé au besoin |
Drupal
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| DRUSH_BIN | Chemin relatif à la racine du projet vers le binaire drush | vendor/bin/drush | par défaut vendor/bin/drush |
| DRUSH_ALIAS | Alias drush ou paramètres supplémentaires, découpés comme par un shell (guillemets compris) | @monsite --uri="mon site.fr" | ne pas le définir si inutile ; rien n'y est exécuté |
| DRUPAL_ROOT_PATH | Chemin relatif à la racine du projet vers le docroot | web | par défaut web |
| DRUPAL_SITE_PATH | Dossier du site, relatif à la racine du projet | web/sites/default | par défaut web/sites/default |
| DRUPAL_CONFIG_PATH | Chemin relatif à la racine du projet vers le dossier de config sync | config/sync | par défaut config/sync |
| MIGRATION_SCRIPT_PATH | Dossier des scripts de migration, relatif à la racine du projet | scripts | par défaut scripts |
| MIGRATION_SCRIPT_PREDEPLOY_PATH | Dossier des scripts de pré-déploiement | scripts/pre-deploy | par défaut $MIGRATION_SCRIPT_PATH/pre-deploy |
| MIGRATION_SCRIPT_POSTDEPLOY_PATH | Dossier des scripts de post-déploiement | scripts/post-deploy | par défaut $MIGRATION_SCRIPT_PATH/post-deploy |
Symfony
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| SYMFONY_PHP_BIN | Binaire PHP des jobs Symfony | /usr/bin/php8.5 | par défaut php |
| SYMFONY_COMPOSER_BIN | Composer des jobs Symfony (commande du PATH ou fichier du projet) | composer.phar | par défaut composer |
| SYMFONY_CONSOLE | Console Symfony, relative à la racine du projet | bin/console | par défaut bin/console |
| SYMFONY_APP_ENV | APP_ENV des commandes Symfony | prod | par défaut prod, en prod comme en preprod |
| SYMFONY_MIGRATIONS | Lancer les migrations Doctrine au déploiement | 0 | par défaut 1 |
| SYMFONY_SCHEMA_VALIDATE | Valider le schéma Doctrine au déploiement (bloquant) | 0 | par défaut 1 |
Assets
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| PATH_TO_THEME | Dossier contenant le package.json | ./web/themes/custom/mon_theme | |
| ASSETS_IMAGE | Image docker de la compilation | node:20 | |
| ASSETS_ARTEFACTS | Dossier contenant le résultat du build | ./web/themes/custom/mon_theme/css | |
| ASSETS_ARTEFACTS_TARGET | Dossier du serveur qui reçoit le résultat du build, relatif à la racine du projet | ./web/themes/custom/mon_theme |
Après le déploiement
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| DEPLOY_CHECK_URL | URL qui doit répondre en 2xx après le déploiement | https://monsite.com/login | par environnement ; sans valeur, pas de contrôle |
| DEPLOY_CHECK_RETRIES | Nombre de tentatives du contrôle après déploiement | 3 | par défaut 5 |
| CI_TRACKING_ENDPOINT | Adresse du service de suivi des déploiements | https://suivi.exemple.fr/api/deploy | sans valeur, pas de suivi |
| CI_TRACKING_TOKEN | Jeton d'authentification auprès du service de suivi et de métriques | masquée | |
| CI_TRACKING_PROJECT | Identifiant du projet dans le service de suivi et de métriques | mon-projet | |
| SENTRY_ORG | Slug de l'organisation Sentry | mon-organisation | |
| SENTRY_PROJECT | Slug du projet Sentry | mon-projet | |
| SENTRY_AUTH_TOKEN | Jeton d'authentification à Sentry, à définir dans les variables CI sur le projet gitlab | masquée | |
| SENTRY_LOG_LEVEL | Niveau de journalisation de sentry-cli | debug | par défaut info |
QA
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| QA_ON_PREPROD | Lancer les jobs QA sur la branche de preprod | "true" | par défaut "false" |
| RUNNER_CACHE_DOCKER_IMAGE | Image docker du job qa:cache-warmup (cache Composer des jobs QA) | wodby/drupal-php:8.3-dev | par défaut wodby/drupal-php:7.4-dev |
| PHPCS_DOCKER_IMAGE | Image docker de phpcs | wodby/drupal-php:8.3-dev | par défaut wodby/drupal-php:7.4-dev |
| PHPCS_QA_FILE | Fichier de sortie de phpcs | files/phpcs.txt | par défaut files/phpcs.txt |
| PHPCS_CONFIG_FILE | Fichier de config phpcs | phpcs.xml | par défaut phpcs.xml |
| PHPCS_ALLOW_FAILURE | "true" : un échec de phpcs n'arrête pas la pipeline | "false" | par défaut "true" |
| PHPSTAN_DOCKER_IMAGE | Image docker de phpstan | wodby/drupal-php:8.3-dev | par défaut wodby/drupal-php:7.4-dev |
| PHPSTAN_QA_FILE | Fichier de sortie de phpstan | files/phpstan.txt | par défaut files/phpstan.txt |
| PHPSTAN_CONFIG_FILE | Fichier de config phpstan | phpstan.neon | par défaut phpstan.neon |
| PHPSTAN_ALLOW_FAILURE | "true" : un échec de phpstan n'arrête pas la pipeline | "false" | par défaut "true" |
| PHPUNIT_DOCKER_IMAGE | Image docker de phpunit | wodby/drupal-php:8.3-dev | par défaut wodby/drupal-php:7.4-dev |
| PHPUNIT_ALLOW_FAILURE | "true" : un échec de phpunit n'arrête pas la pipeline | "true" | par défaut "false" |
| CI_METRIC_ENDPOINT | Adresse du service qui reçoit les métriques QA | https://suivi.exemple.fr/api/metric | sans valeur, pas d'envoi |
Documentation
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| DOCUSAURUS_FOLDER | Dossier contenant la documentation | docs | par défaut docs |