Twig-CS-Fixer : un bon ajout à ma CI/CD
Récemment, j’ai mis en place Twig-CS-Fixer dans la CI/CD de l’application WineSitting. Je l’ai découvert un peu par hasard grâce aux suggestions de GitHub, et il s’est révélé être une excellente addition. Voici pourquoi Twig-CS-Fixer est si cool.
Pourquoi Twig-CS-Fixer ?
Il existe bien la commande Symfony php bin/console lint:twig
, mais elle ne fait remonter que
les erreurs de syntaxe dans les fichiers Twig.
Twig-CS-Fixer est un peu plus pointu puisqu’il fonctionne à la manière de PHP-CS-Fixer.
Il va donc vérifier le style du code Twig, le nommage des fichiers, des dossiers et même des
variables, afin qu’ils respectent les conventions définies.
Il peut corriger certains éléments automatiquement, mais dans mon cas, c’est plutôt un outil de
vérification.
Cela permet d’éviter les variations de style et de garder la base de code uniforme, ce qui est essentiel pour la lisibilité et la maintenance à long terme.
Intégration facile dans la CI/CD
L’avantage, c’est que lorsqu’un pipeline CI/CD est déjà en place, Twig-CS-Fixer est très simple à
intégrer. Il suffit de l’installer via Composer et de lancer la commande vendor/bin/twig-cs-fixer lint templates/
.
En fonction de votre configuration, il va s’exécuter automatiquement à chaque commit ou pull request… Garantissant que toutes les modifications respectent les standards définis.
Voici comment j’ai intégré Twig-CS-Fixer dans GitHub Actions :
name: Lint
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
linters-templates:
runs-on: ubuntu-latest
name: 'Templates'
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Lint Twig templates
run: php bin/console lint:twig src/ templates/ --env=prod
- name: Run Twig-CS-Fixer
run: vendor/bin/twig-cs-fixer lint templates/ --report github
Impact
L’impact de la mise en place de Twig-CS-Fixer n’a pas été énorme. En effet, nous tâchions déjà de respecter les normes de base. Cela dit, l’outil a tout de même relevé quelques points à corriger que nous avions manqués, et il en a corrigé certains automatiquement.
Cette vérification supplémentaire nous assure une cohérence parfaite dans le code et c’est ça qu’on aime ❤️.
On retrouve le site officiel de Twig-CS-Fixer à l’adresse suivante : https://github.com/VincentLanglet/Twig-CS-Fixer