Codi font en execució

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 -----------