Proprietà Hooks

Utilizzare la sezione hooks per eseguire i comandi della shell durante le fasi di compilazione, distribuzione e post-distribuzione:

  • build—Esegui i comandi prima di creare il pacchetto dell'applicazione. Servizi, come il database o Redis, non sono disponibili perché l'applicazione non è ancora stata distribuita. Aggiungere i comandi personalizzati prima del comando predefinito php ./vendor/bin/ece-tools in modo che il contenuto generato personalizzato continui alla fase di distribuzione.

  • deploy—Esegui i comandi dopo per creare il pacchetto e distribuire l'applicazione. A questo punto è possibile accedere ad altri servizi. Poiché il comando predefinito php ./vendor/bin/ece-tools copia la directory app/etc nella posizione corretta, è necessario aggiungere comandi personalizzati dopo al comando deploy per evitare errori nei comandi personalizzati.

  • post_deploy—Esegui comandi dopo la distribuzione dell'applicazione e dopo il contenitore inizia ad accettare connessioni. L'hook post_deploy cancella la cache e precarica (riscalda) la cache. È possibile personalizzare l'elenco delle pagine utilizzando la variabile WARM_UP_PAGES nella fase di distribuzione di Post. Anche se non obbligatorio, questo funziona insieme alla variabile di ambiente SCD_ON_DEMAND.

L'esempio seguente mostra la configurazione predefinita nel file .magento.app.yaml. Aggiungere comandi CLI nelle sezioni build, deploy o post_deploy prima del comando 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

È inoltre possibile personalizzare ulteriormente la fase di compilazione utilizzando i comandi generate e transfer per eseguire azioni aggiuntive durante la creazione specifica del codice o lo spostamento dei file.

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 - causa un errore degli hook sul primo comando non riuscito, anziché sul comando finale non riuscito.
  • build:generate: applica patch, convalida la configurazione, genera ID e genera contenuto statico se SCD è abilitato per la fase di compilazione.
  • build:transfer - trasferisce il codice generato e il contenuto statico alla destinazione finale.

Comandi eseguiti dalla directory dell'applicazione (/app). È possibile utilizzare il comando cd per cambiare la directory. Gli hook hanno esito negativo se il comando finale in essi contenuto ha esito negativo. Per impedirne l'esecuzione al primo comando non riuscito, aggiungere set -e all'inizio dell'hook.

Per compilare i file Sass utilizzando 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

Compila i file Sass utilizzando grunt prima della distribuzione del contenuto statico, che avviene durante la compilazione. Inserire il comando grunt prima del comando build.

NOTE
Con ECE-Tools 2002.1.0 e versioni successive, è possibile utilizzare la funzionalità di distribuzione basata su scenari per personalizzare i processi di compilazione, distribuzione e post-distribuzione per il progetto Adobe Commerce su infrastruttura cloud. Vedi Distribuzione basata su scenari.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26