Propriété Hooks
Utilisez la section hooks
pour exécuter des commandes shell pendant les phases de création, de déploiement et de post-déploiement :
-
build
—Exécuter des commandes avant de grouper votre application. Les services, tels que la base de données ou Redis, ne sont pas disponibles, car l’application n’a pas encore été déployée. Ajoutez des commandes personnalisées avant la commande par défautphp ./vendor/bin/ece-tools
afin que le contenu généré par les personnalisations continue à la phase de déploiement. -
deploy
: exécutez les commandes après le package et le déploiement de votre application. Vous pouvez accéder à d’autres services à ce stade. Comme la commande par défautphp ./vendor/bin/ece-tools
copie le répertoireapp/etc
vers l’emplacement correct, vous devez ajouter des commandes personnalisées après la commande de déploiement pour empêcher l’échec des commandes personnalisées. -
post_deploy
—Exécuter des commandes après le déploiement de votre application et après que le conteneur commence à accepter les connexions. Le crochetpost_deploy
efface le cache et précharge (réchauffe) le cache. Vous pouvez personnaliser la liste des pages à l’aide de la variableWARM_UP_PAGES
dans l’ étape de déploiement de Post. Bien que cela ne soit pas obligatoire, cela fonctionne en tandem avec la variable d’environnementSCD_ON_DEMAND
.
L’exemple suivant illustre la configuration par défaut dans le fichier .magento.app.yaml
. Ajoutez des commandes d’interface de ligne de commande sous les sections build
, deploy
ou post_deploy
avant la commande ece-tools
:
hooks:
# We run build hooks before your application has been packaged.
build: |
set -e
composer install
php ./vendor/bin/ece-tools run scenario/build/generate.xml
php ./vendor/bin/ece-tools run scenario/build/transfer.xml
# We run deploy hook after your application has been deployed and started.
deploy: |
php ./vendor/bin/ece-tools run scenario/deploy.xml
# We run post deploy hook to clean and warm the cache. Available with ECE-Tools 2002.0.10.
post_deploy: |
php ./vendor/bin/ece-tools run scenario/post-deploy.xml
Vous pouvez également personnaliser davantage la phase de génération à l’aide des commandes generate
et transfer
afin d’effectuer des actions supplémentaires lors de la création spécifique de code ou du déplacement de fichiers.
hooks:
# We run build hooks before your application has been packaged.
build: |
set -e
php ./vendor/bin/ece-tools build:generate
# php /path/to/your/script
php ./vendor/bin/ece-tools build:transfer
set -e
: entraîne l’échec des hooks sur la première commande qui a échoué, au lieu de la commande finale qui a échoué.build:generate
: applique des correctifs, valide la configuration, génère l’ID et génère du contenu statique si SCD est activé pour la phase de création.build:transfer
: transfère le code généré et le contenu statique vers la destination finale.
Les commandes s’exécutent à partir du répertoire de l’application (/app
). Vous pouvez utiliser la commande cd
pour modifier le répertoire. Les hooks échouent si la commande finale échoue. Pour les faire échouer sur la première commande en échec, ajoutez set -e
au début du point d'extension.
Pour compiler des fichiers Sass à l’aide de grunt :
dependencies:
ruby:
sass: "3.4.7"
nodejs:
grunt-cli: "~0.1.13"
hooks:
build: |
cd public/profiles/project_name/themes/custom/theme_name
npm install
grunt
cd
php ./vendor/bin/ece-tools build
Compilez des fichiers Sass en utilisant grunt
avant le déploiement de contenu statique, ce qui se produit pendant la génération. Placez la commande grunt
avant la commande build
.