Git post-merge hook composer install
Molts dels projectes amb els que treballem requereixen executar certes comandes després d'actualitzar el codi font.
En aquest cas ens calia fer un composer install
en el cas que s'hagués actualitzat alguna dependència del projecte.
Per fer-ho crearem el següent script pel hook post-merge a .git/hooks/post-merge
assegurant-nos que és executable per l'usuari que fa el pull:
#!/bin/bash
git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD | grep composer.lock > /dev/null
if [ $? -eq 0 ]
then
(
echo ""
echo "-------- COMPOSER START $(date) ----------"
composer install --no-interaction
echo "--------- COMPOSER END $(date) -----------"
echo ""
) 2>&1 | tee -a composer.log
fi
El que fem en primer lloc és mirar si s'ha actualitzat el fitxer composer.lock i en cas afirmatiu executa la comanda composer install --no-interaction
la qual instal·la les noves dependències.
Finalment redirigim qualsevol sortida de la comanda a stdout i a un fitxer de log per poder analitzar-ho en cas d'error.
-------- COMPOSER START Thu Mar 19 13:56:35 CET 2020 ----------
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 1 install, 5 updates, 0 removals
- Updating drupal/core (8.8.3 => 8.8.4): Downloading (100%)
- Updating drupal/webform (5.8.0 => 5.9.0): Downloading (100%)
- Updating sendgrid/php-http-client (3.10.4 => 3.10.5): Downloading (100%)
- Updating sendgrid/sendgrid (7.4.4 => 7.4.5): Downloading (100%)
- Updating drupal/core-dev (8.8.3 => 8.8.4)
- Installing jquery/geocomplete (1.7.0): Downloading (100%)
Generating autoload files
> DrupalProject\composer\ScriptHandler::createRequiredFiles
--------- COMPOSER END Thu Mar 19 13:56:58 CET 2020 -----------
- Inicia sessió o registra't per fer comentaris
Comentaris