Shell e comandi negli ambienti di compilazione - AWS CodeBuild

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Shell e comandi negli ambienti di compilazione

Puoi fornire un insieme di comandi per l'esecuzione di AWS CodeBuild in un ambiente di compilazione durante il ciclo di vita di una compilazione (ad esempio, l'installazione di dipendenze di compilazione e test e compilazione del codice sorgente). Esistono vari modi per specificare tali comandi:

  • Crea un file di specifiche di compilazione e includilo con il codice sorgente. In questo file, specifica i comandi che desideri eseguire in ciascuna fase del ciclo di vita della compilazione. Per ulteriori informazioni, consultare la Riferimento alle specifiche di costruzione per CodeBuild.

  • Utilizza la console di CodeBuild per creare un progetto di compilazione. In Insert build commands (Inserisci comandi di compilazione), per Build commands (Comandi di compilazione), inserisci i comandi che desideri eseguire nella fase build. Per ulteriori informazioni, consultare Creare un progetto di compilazione (console).

  • Utilizza la console di CodeBuild per modificare le impostazioni di un progetto di compilazione. In Insert build commands (Inserisci comandi di compilazione), per Build commands (Comandi di compilazione), inserisci i comandi che desideri eseguire nella fase build. Per ulteriori informazioni, consultare Modifica delle impostazioni di un progetto di compilazione (console).

  • Utilizza la AWS CLI o i kit SDK AWS per creare un progetto di compilazione o modificare le impostazioni di un progetto di compilazione. Fai riferimento al codice sorgente che contiene un file di specifiche di compilazione con i tuoi comandi, oppure specifica una singola stringa che include i contenuti di file di specifiche di compilazione equivalente. Per ulteriori informazioni, consultare Creazione di un progetto di compilazione o Modifica delle impostazioni di un progetto di compilazione.

  • Utilizza la AWS CLIo i kit SDK AWS per avviare una compilazione, specificando un file di specifiche di compilazione o una singola stringa che include i contenuti di un file di specifiche di compilazione equivalente. Per ulteriori informazioni, consulta la descrizione del valore buildspecOverride in Esecuzione di una compilazione.

È possibile specificare qualsiasi comando di linguaggio di comando Shell (sh). Nella versione 0.1 delle specifiche di CodeBuild, esegue ogni comando Shell in un'istanza separata nell'ambiente di compilazione. Questo significa che ogni comando viene eseguito separatamente da tutti gli altri comandi. Pertanto, come impostazione predefinita, non è possibile eseguire un singolo comando che si basa sullo stato di qualsiasi comando precedente (per esempio, modificare le directory o impostare le variabili di ambiente). Per aggirare questo limite, suggeriamo di utilizzare la versione 0.2, che risolve questo problema. Se è necessario utilizzare la versione 0.1, suggeriamo gli approcci seguenti:

  • Includi uno script shell nel codice sorgente che contiene i comandi che desideri eseguire in una singola istanza della shell predefinita. Per esempio, puoi includere un file denominato my-script.sh nel codice sorgente che contiene i comandi, come cd MyDir; mkdir -p mySubDir; cd mySubDir; pwd;. Quindi, nel file di specifiche di compilazione, specifica il comando ./my-script.sh.

  • Nel file di specifiche di compilazione o nell'impostazione Build commands (Comandi di compilazione) solo per la fase build, inserisci un singolo comando che include tutti i comandi che desideri eseguire in una singola istanza della shell predefinita (ad esempio, cd MyDir && mkdir -p mySubDir && cd mySubDir && pwd).

Se CodeBuild un errore, l'errore potrebbe essere più difficile da risolvere rispetto all'esecuzione di un singolo comando nella propria istanza della shell predefinita.

I comandi che vengono eseguiti in un'immagine di Windows Server Core utilizzano la shell di PowerShell.