

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Especificar dois tempos de execução
<a name="sample-runtime-two-major-version-runtimes"></a>

Você pode especificar mais de um tempo de execução no mesmo projeto de CodeBuild compilação. Este exemplo de projeto usa dois arquivos de origem: um que usa o tempo de execução Go e um que usa o tempo de execução Node.js. 

1. Crie um diretório denominado `my-source`. 

1. No diretório `my-source`, crie um diretório chamado `golang-app`. 

1. Crie um arquivo denominado `hello.go` com os conteúdos a seguir. Armazene o arquivo no diretório `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")
   }
   ```

1. No diretório `my-source`, crie um diretório chamado `nodejs-app`. Ele deve estar no mesmo nível que o diretório `golang-app`. 

1. Crie um arquivo denominado `index.js` com os conteúdos a seguir. Armazene o arquivo no diretório `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");
   ```

1. Crie um arquivo denominado `package.json` com os conteúdos a seguir. Armazene o arquivo no diretório `nodejs-app`. 

   ```
   {
     "name": "mycompany-app",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
       "test": "echo \"run some tests here\""
     },
     "author": "",
     "license": "ISC"
   }
   ```

1. Crie um arquivo denominado `buildspec.yml` com os conteúdos a seguir. Armazene o arquivo no diretório `my-source`, no mesmo nível que os diretórios `nodejs-app` e `golang-app`. A seção `runtime-versions` especifica os runtimes do Node.js versão 12 e do Go versão 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
   ```

1. A estrutura de arquivo deve se parecer com esta. 

   ```
   my-source
   ├── golang-app
   │   └── hello.go
   ├── nodejs.app
   │   ├── index.js
   │   └── package.json
   └── buildspec.yml
   ```

1. Faça upload do conteúdo do `my-source` diretório em um bucket de entrada do S3 ou em um repositório CodeCommit GitHub, ou Bitbucket.
**Importante**  
 Se você estiver usando um bucket de entrada do S3, crie um arquivo ZIP que contenha a estrutura de diretório e os arquivos e envie-o para o bucket de entrada. Não adicione `my-source` ao arquivo ZIP, apenas aos diretórios e arquivos em `my-source`.

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crie um projeto de compilação. Para obter mais informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [Executar uma compilação (console)](run-build-console.md). Deixe todas as configurações em seus valores padrão, exceto estas configurações.
   + Em **Ambiente**:
     + Em **Imagem do ambiente**, escolha **Imagem gerenciada**.
     + Em **Sistema operacional**, escolha **Amazon Linux 2**.
     + Em **Runtime(s)**, selecione **Padrão**.
     + Para **Imagem**, escolha **aws/codebuild/amazonlinux-x86\$164-standard:4.0**.

1. Selecione **Create build project (Criar projeto de compilação)**. 

1. Selecione **Iniciar compilação**. 

1. Aceite os padrões em **Configuração de compilação** e escolha **Iniciar compilação**. 

1. Assim que a compilação for concluída, veja a saída da compilação na guia **Logs de compilação**. Você deve ver saída semelhante ao seguinte: Ela mostra a saída dos tempos de execução Go e Node.js. Ela também mostra a saída dos aplicativos Go e Node.js. 

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