Nesta página, explicamos como usar o Cloud Build para criar e testar o Node.js
.
aplicativos, armazenar artefatos criados em um repositório NPM no Artifact Registry e
gerar informações de procedência do build.
O Cloud Build permite que você use qualquer imagem de contêiner disponível publicamente para executar suas tarefas. A imagem pública
node
do Docker Hub
vem pré-instalada com a ferramenta npm
. É possível configurar o Cloud Build
para criar seu projeto do Node.js
com essa ferramenta.
Antes de começar
Nas instruções desta página, pressupomos que você está familiarizado com Node.js
. Além disso:
- Familiarize-se com o npm.
- Tenha seu projeto
Node.js
em mãos, incluindo arquivospackage.json
etest.js
. - Verifique se o arquivo
package.json
inclui um scriptstart
e umtest
script. - Familiarize-se com a gravação de um arquivo de configuração do Cloud Build.
- Ter um repositório NPM no Artifact Registry. Se você não tiver um, crie um repositório.
- Para executar os comandos
gcloud
nesta página, instale a Google Cloud CLI.
Como criar com npm
Para executar suas tarefas na imagem node
do Docker Hub, especifique o URL da imagem no campo name
no arquivo de configuração do Cloud Build.
O Cloud Build inicia o contêiner especificado no campo name
usando o ponto de entrada padrão da imagem. Para substituir o ponto de entrada padrão e definir como executar a etapa de build quando ela for invocada, adicione um campo entrypoint
na etapa de build. A imagem node
no Docker Hub vem
pré-instalado com a ferramenta npm
. Especifique as ferramentas no campo entrypoint
para
invocá-las como o ponto de entrada da etapa de build.
No seguinte arquivo de configuração de build de exemplo:
- O campo
name
especifica que a imagemnode
do Docker Hub é usada pelo Cloud Build para executar a tarefa. Ao especificar onode
é possível omitir a versão do nó para usar:latest
como padrão ou especifique uma versão do nó usar uma versão específica. Por exemplo,name: node
usará a versão mais recente do nó, ename: node:12
usaránode:12
. O campo
entrypoint
especifica que a ferramentanpm
é usada quando a imagemnode
é invocada.steps: - name: 'node' entrypoint: 'npm'
Como configurar builds Node.js
No diretório raiz do projeto, crie um arquivo de configuração chamado
cloudbuild.yaml
.Instalar dependências: antes de criar seu aplicativo, é preciso confira se todas as dependências do projeto estão instaladas usando
npm
. Você pode instalar dependências usando o comandoinstall
no buildnpm
etapa. O campoargs
de uma etapa do build recebe uma lista de argumentos e transmite à imagem referenciada pelo campo de nome. No arquivo de configuração de build, adicioneinstall
ao campoargs
para invocar o comandoinstall
:steps: - name: 'node' entrypoint: 'npm' args: ['install']
Adicionar testes: se você tiver definido um script
test
empackage.json
, adicionetest
ao campoargs
para que Cloud Build execute o script:steps: - name: 'node' entrypoint: 'npm' args: ['install'] - name: 'node' entrypoint: 'npm' args: ['test']
Executar comandos personalizados: se
package.json
tiver comandos personalizados, configure o Cloud Build para executar esse comando. No campoargs
, adicionerun
como o primeiro argumento seguido pelo nome do comando personalizado. O arquivo de configuração de build a seguir tem argumentos para executar uma comando chamadobuild
:steps: - name: 'node' entrypoint: 'npm' args: ['install'] - name: 'node' entrypoint: 'npm' args: ['test'] - name: 'node' entrypoint: 'npm' args: ['run', 'build']
Fazer upload no Artifact Registry:
No arquivo de configuração, adicione o campo
npmPackages
e especifique o npm repositório de dados no Artifact Registry:artifacts: npmPackages: - repository: 'https://LOCATION-npm.pkg.dev/PROJECT-ID/REPOSITORY_NAME' packagePath: 'PACKAGE_PATH'
Substitua os seguintes valores:
- LOCATION: o local para seu repositório no Artifact Registry.
- PROJECT_ID: o ID do projeto do Google Cloud que contém o repositório do Artifact Registry.
- REPOSITORY_NAME: o nome do repositório npm em o Artifact Registry.
- PACKAGE_PATH: o caminho do diretório local
que contém o pacote npm que você quer enviar ao Artifact Registry. Recomendamos
usar um caminho absoluto. O valor
PACKAGE_PATH
pode ser.
para usar o diretório de trabalho atual, mas o campo não pode ser omitido ou deixado em branco. Esse diretório precisa conter um arquivopackage.json
.
Opcional: ativar a geração de origem
O Cloud Build pode gerar metadados de procedência verificáveis de Níveis da cadeia de suprimentos para artefatos de software (SLSA) para ajudar a proteger seu pipeline de integração contínua.
Para ativar a geração de procedência, adicione
requestedVerifyOption: VERIFIED
à seçãooptions
no arquivo de configuração.Inicie seu build: manualmente ou usando gatilhos de build.
Quando o build for concluído, você poderá acessar os detalhes do repositório. no Artifact Registry.
Também é possível conferir os metadados da procedência do build e validar a procedência.
Como executar testes em várias versões de node
Às vezes, é necessário garantir que o projeto funcione em várias versões de node
. É possível criar e configurar gatilhos do Cloud Build de maneira que:
- No arquivo de configuração de build, especifique a versão
node
como uma variável de substituição. - Crie um gatilho para cada versão de
node
usada como referência durante a compilação no aplicativo. - Em cada uma das configurações do gatilho, use o campo de valor da variável de substituição para indicar a versão de
node
para o gatilho.
As etapas a seguir explicam como especificar a versão de node
usando variáveis de substituição específicas do gatilho:
Na raiz do seu repositório, adicione um arquivo de configuração do build que especifique o
node
como variável de substituição. No exemplo de arquivo de configuração de build abaixo,$_NODE_VERSION
é uma variável de substituição definida pelo usuário:steps: - name: 'node:$_NODE_VERSION' entrypoint: 'npm' args: ['install'] - name: 'node:$_NODE_VERSION' entrypoint: 'npm' args: ['test']
Crie um gatilho de compilação para cada versão do
node
que você quer usar como base para compilação. seguindo estas etapas:Abra a página Gatilhos no console do Google Cloud:
Selecione o projeto no menu suspenso do seletor de projetos na parte superior da página.
Clique em Abrir.
Clique em Criar gatilho.
Na página Criar gatilho, especifique as seguintes configurações:
Insira um nome para o gatilho.
Selecione o evento de repositório para iniciar o gatilho.
Selecione o repositório que contém o código-fonte e o arquivo de configuração de build.
Especifique o regex do nome da ramificação ou da tag que iniciará o gatilho.
Configuração: escolha o arquivo de configuração da compilação que você criou anteriormente.
Em Variáveis de substituição, clique em Adicionar variável.
- Em Variável, especifique a variável de versão
node
usada no arquivo de configuração de build e, em Valor, especifique a versão donode
. Por exemplo,_NODE_VERSION
e12
.
- Em Variável, especifique a variável de versão
Clique em Criar para salvar o gatilho de compilação.
Use esses gatilhos para criar o código na versão de node
que você
especificou no gatilho.
A seguir
- Saiba como ver os resultados da build.
- Saiba como proteger versões.
- Saiba como criar imagens de contêiner.
- Saiba como criar aplicativos Go.
- Saiba como realizar implantações azul-verde no Compute Engine.
- Saiba como resolver erros de build.