View a markdown version of this page

Specifica di due runtime - 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à.

Specifica di due runtime

Puoi specificare più di un runtime nello stesso progetto di build. CodeBuild Questo progetto di esempio utilizza due file sorgente: uno che utilizza il runtime Go e uno che utilizza il Node.js runtime.

  1. Crea una directory denominata my-source.

  2. Nella directory my-source, crea una directory denominata golang-app.

  3. Crea un file denominato hello.go con i seguenti contenuti. Archivia il file nella directory golang-app.

    package main import "fmt" func main() { fmt.Println("hello world from golang") fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0) fmt.Println(true && false) fmt.Println(true || false) fmt.Println(!true) fmt.Println("good bye from golang") }
  4. Nella directory my-source, crea una directory denominata nodejs-app. che deve trovarsi allo stesso livello della directory golang-app.

  5. Crea un file denominato index.js con i seguenti contenuti. Archivia il file nella directory nodejs-app.

    console.log("hello world from nodejs"); console.log("1+1 =" + (1+1)); console.log("7.0/3.0 =" + 7.0/3.0); console.log(true && false); console.log(true || false); console.log(!true); console.log("good bye from nodejs");
  6. Crea un file denominato package.json con i seguenti contenuti. Archivia il file nella directory nodejs-app.

    { "name": "mycompany-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"run some tests here\"" }, "author": "", "license": "ISC" }
  7. Crea un file denominato buildspec.yml con i seguenti contenuti. Archivia il file nella my-source directory, allo stesso livello delle directory nodejs-app e golang-app. La runtime-versions sezione specifica i runtime della Node.js versione 12 e della versione Go 1.13.

    version: 0.2 phases: install: runtime-versions: golang: 1.13 nodejs: 12 build: commands: - echo Building the Go code... - cd $CODEBUILD_SRC_DIR/golang-app - go build hello.go - echo Building the Node code... - cd $CODEBUILD_SRC_DIR/nodejs-app - npm run test artifacts: secondary-artifacts: golang_artifacts: base-directory: golang-app files: - hello nodejs_artifacts: base-directory: nodejs-app files: - index.js - package.json
  8. La struttura del file dovrebbe avere il seguente aspetto.

    my-source ├── golang-app │ └── hello.go ├── nodejs.app │ ├── index.js │ └── package.json └── buildspec.yml
  9. Carica il contenuto della my-source directory in un bucket di input S3 o in un repository CodeCommit, GitHub o Bitbucket.

    Importante

    Se si sta usando un bucket di input S3, assicurarsi di creare un file ZIP che contenga la struttura e i file della directory, quindi caricarlo nel bucket di input. Non aggiungere my-source al file ZIP, ma solo le directory e i file all'interno di my-source.

  10. Apri la console all'indirizzo. AWS CodeBuild https://console.aws.amazon.com/codesuite/codebuild/home

  11. Creare un progetto di compilazione. Per ulteriori informazioni, consultare Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console). Lasciare tutte le impostazioni sui valori predefiniti, ad eccezione delle seguenti.

    • In Environment (Ambiente):

      • Per Environment image (Immagine ambiente), scegliere Managed image (Immagine gestita).

      • Per Operating system (Sistema operativo), scegliere Amazon Linux 2.

      • In Runtime(s) (Runtime), seleziona Standard.

      • Per Image, scegli aws/codebuild/amazonlinux-x86_64-standard:4.0.

  12. Scegliere Create build project (Crea progetto di compilazione).

  13. Selezionare Start build (Avvia compilazione).

  14. In Build configuration (Configurazione della compilazione) accettare le impostazioni predefinite, quindi scegliere Build configuration (Avvia compilazione).

  15. Al termine della compilazione, visualizzare l’output della compilazione nella scheda Build logs (Log di compilazione). Verrà visualizzato un output simile al seguente. Mostra l'output di Go e dei runtime. Node.js Mostra anche l'output di Go e Node.js delle applicazioni.

    [Container] Date Time Processing environment variables [Container] Date Time Selecting 'golang' runtime version '1.13' based on manual selections... [Container] Date Time Selecting 'nodejs' runtime version '12' based on manual selections... [Container] Date Time Running command echo "Installing Go version 1.13 ..." Installing Go version 1.13 ... [Container] Date Time Running command echo "Installing Node.js version 12 ..." Installing Node.js version 12 ... [Container] Date Time Running command n $NODE_12_VERSION installed : v12.20.1 (with npm 6.14.10) [Container] Date Time Moving to directory /codebuild/output/src819694850/src [Container] Date Time Registering with agent [Container] Date Time Phases found in YAML: 2 [Container] Date Time INSTALL: 0 commands [Container] Date Time BUILD: 1 commands [Container] Date Time Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED [Container] Date Time Phase context status code: Message: [Container] Date Time Entering phase INSTALL [Container] Date Time Phase complete: INSTALL State: SUCCEEDED [Container] Date Time Phase context status code: Message: [Container] Date Time Entering phase PRE_BUILD [Container] Date Time Phase complete: PRE_BUILD State: SUCCEEDED [Container] Date Time Phase context status code: Message: [Container] Date Time Entering phase BUILD [Container] Date Time Running command echo Building the Go code... Building the Go code... [Container] Date Time Running command cd $CODEBUILD_SRC_DIR/golang-app [Container] Date Time Running command go build hello.go [Container] Date Time Running command echo Building the Node code... Building the Node code... [Container] Date Time Running command cd $CODEBUILD_SRC_DIR/nodejs-app [Container] Date Time Running command npm run test > mycompany-app@1.0.0 test /codebuild/output/src924084119/src/nodejs-app > echo "run some tests here" run some tests here