Especificar dois tempos de execução
É possível especificar mais de um runtime no mesmo projeto de compilação do CodeBuild. 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.
-
Crie um diretório chamado
my-source. -
No diretório
my-source, crie um diretório chamadogolang-app. -
Crie um arquivo denominado
hello.gocom os conteúdos a seguir. Armazene o arquivo no diretóriogolang-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") } -
No diretório
my-source, crie um diretório chamadonodejs-app. Ele deve estar no mesmo nível que o diretóriogolang-app. -
Crie um arquivo denominado
index.jscom os conteúdos a seguir. Armazene o arquivo no diretórionodejs-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"); -
Crie um arquivo denominado
package.jsoncom os conteúdos a seguir. Armazene o arquivo no diretórionodejs-app.{ "name": "mycompany-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"run some tests here\"" }, "author": "", "license": "ISC" } -
Crie um arquivo denominado
buildspec.ymlcom os conteúdos a seguir. Armazene o arquivo no diretóriomy-source, no mesmo nível que os diretóriosnodejs-appegolang-app. A seçãoruntime-versionsespecifica 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 -
A estrutura de arquivo deve se parecer com esta.
my-source ├── golang-app │ └── hello.go ├── nodejs.app │ ├── index.js │ └── package.json └── buildspec.yml -
Faça upload do conteúdo do diretório
my-sourceem um bucket de entrada do S3 ou um repositório do CodeCommit, do GitHub ou do 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-sourceao arquivo ZIP, apenas aos diretórios e arquivos emmy-source. -
Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home
. -
Crie um projeto de compilação. Para obter mais informações, consulte Criar um projeto de compilação (console) e Executar uma compilação (console). 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.
-
Em Imagem, escolha aws/codebuild/amazonlinux-x86_64-standard:4.0.
-
-
-
Selecione Create build project (Criar projeto de compilação).
-
Selecione Iniciar compilação.
-
Aceite os padrões em Configuração de compilação e escolha Iniciar compilação.
-
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