Nesta página, descrevemos como criar um arquivo de configuração do build que você pode usar para iniciar um build no Cloud Build.
Um arquivo de configuração da versão define os campos necessários para o Cloud Build executar suas tarefas. Você precisará de um arquivo de configuração do build
se estiver iniciando builds usando a ferramenta de linha de comandogcloud
ou gatilhos
de build. É possível gravar o arquivo de configuração da versão usando a sintaxe YAML ou JSON.
Antes de começar
Leia Visão geral da configuração do build para saber mais sobre os campos que podem ser incluídos em um arquivo de configuração do build.
Como criar uma configuração de compilação
Confira nas etapas a seguir como criar um arquivo de configuração de compilação básico. Cada um
dos campos no arquivo de configuração do build define uma parte da tarefa que você quer
executar. O único campo obrigatório no arquivo de configuração do build é o campo name
de uma etapa. Todos os outros campos são opcionais.
YAML
Crie o arquivo de configuração de build. No diretório raiz do projeto, crie um arquivo com o nome
cloudbuild.yaml
. Esse é seu arquivo de configuração do Cloud Build.Adicione o campo steps. A seção
steps
, no arquivo de configuração de versão, contém as etapas de criação que deverão ser realizadas pelo Cloud Build.steps:
Adicione a primeira etapa. Em
steps:
, adicione um camponame
e aponte-o para uma imagem de contêiner para executar sua tarefa. O Cloud Build e sua comunidade de desenvolvedores fornece várias imagens de contêiner com ferramentas e linguagens comuns instaladas. É possível usar qualquer uma dessas imagens (também conhecidas como Cloud Builders) ou qualquer imagem publicamente disponível em uma etapa de build. Para receber informações sobre diferentes tipos de imagens de contêiner que podem ser usadas em uma etapa de criação, consulte Criadores de nuvem.O snippet a seguir mostra uma etapa de criação com um
docker
criadorgcr.io/cloud-builders/docker
que é uma imagem de contêiner em execução no Docker.steps: - name: 'gcr.io/cloud-builders/docker'
Adicione os argumentos da etapa. O campo
args
de uma etapa recebe uma lista de argumentos e os transmite ao criador a que o camponame
faz referência. Se o builder no camponame
tiver um entrypoint,args
na lista serão usados para acessar esse entrypoint. Se o criador no camponame
não tiver um entrypoint, o primeiro elemento emargs
é usado como o entrypoint.Estes são os elementos do exemplo a seguir:
build
é o entrypoint para o cloud builder do Docker.-t
é a tag do Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
é o nome da imagem a ser criada no Artifact Registry. A etapa do build usa a substituição padrão para o ID do projeto, portanto, esse valor é automaticamente substituído no tempo de compilação..
é o local do código-fonte, que indica que o código-fonte está no diretório de trabalho atual.steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
Adicione mais etapas. É possível adicionar qualquer número de etapas de versão ao arquivo de configuração de versão com a inclusão de campos
name
e o direcionamento deles para os criadores de nuvem.O snippet a seguir inclui mais duas etapas no arquivo de configuração de compilação:
- uma etapa do build do docker para invocar o comando
docker push
a fim de enviar o build da imagem da etapa anterior ao Artifact Registry. Uma etapa do build para o comando do SDK do Google Cloud com o entrypoint
gcloud
especificado, que cria uma instância do Compute Engine a partir da imagem do contêiner no Artifact Registry. O campoenv
está incluído para especificar a zona e a região do Compute Engine.- name: 'gcr.io/cloud-builders/docker' args: ['push', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- uma etapa do build do docker para invocar o comando
Inclua outros campos de configuração do build. É possível configurar ainda mais o build com a inclusão de campos como
machineType
,tags
, outimeout
. Para ver a lista completa de campos que você pode incluir no arquivo de configuração do build, consulte Visão geral da configuração do build.No exemplo a seguir, a etapa de build
gcr.io/google.com/cloudsdktool/cloud-sdk
expira após 240 segundos.- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' timeout: 240s args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
Veja o seguinte snippet para o exemplo completo de um arquivo de configuração do build básico:
No exemplo, as imagens de contêiner são armazenadas no Artifact Registry. Se o build produzir artefatos que não sejam de contêineres, eles poderão ser armazenados no Cloud Storage usando o campo
artifacts
. Para receber instruções sobre como fazer isso, consulte Como armazenar imagens e artefatos.
JSON
Crie o arquivo de configuração de build. No diretório raiz do projeto, crie um arquivo com o nome
cloudbuild.json
. Esse é seu arquivo de configuração do Cloud Build.Adicione o campo steps. A seção
steps
, no arquivo de configuração de versão, contém as etapas de criação que deverão ser realizadas pelo Cloud Build.{ "steps": }
Adicione a primeira etapa. Em
steps:
, adicione um camponame
e aponte-o para uma imagem de contêiner para executar sua tarefa. O Cloud Build e sua comunidade de desenvolvedores fornece várias imagens de contêiner com ferramentas e linguagens comuns instaladas. É possível usar qualquer uma dessas imagens (também conhecidas como Cloud Builders) ou qualquer imagem publicamente disponível em uma etapa de build. Para receber informações sobre diferentes tipos de imagens de contêiner que podem ser usadas em uma etapa de criação, consulte Criadores de nuvem.O snippet a seguir mostra uma etapa de criação com um
docker
criadorgcr.io/cloud-builders/docker
que é uma imagem de contêiner em execução no Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }
Adicione os argumentos da etapa. O campo
args
de uma etapa recebe uma lista de argumentos e os transmite ao criador a que o camponame
faz referência. Se o builder no camponame
tiver um entrypoint,args
na lista serão usados para acessar esse entrypoint. Se o criador no camponame
não tiver um entrypoint, o primeiro elemento emargs
é usado como o entrypoint.Estes são os elementos do exemplo a seguir:
build
é o entrypoint para o cloud builder do Docker.-t
é a tag do Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
é o nome da imagem a ser criada no Artifact Registry. A etapa do build usa a substituição padrão para o ID do projeto, portanto, esse valor é automaticamente substituído no tempo de compilação..
é o local do código-fonte, que indica que o código-fonte está no diretório de trabalho atual.{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
Adicione mais etapas. É possível adicionar qualquer número de etapas de versão ao arquivo de configuração de versão com a inclusão de campos
name
e o direcionamento deles para os criadores de nuvem.O snippet a seguir inclui mais duas etapas no arquivo de configuração de compilação:
- uma etapa do build do docker para invocar o comando
docker push
a fim de enviar o build da imagem da etapa anterior ao Artifact Registry. Uma etapa do build para o comando do SDK do Google Cloud com o entrypoint
gcloud
especificado, que cria uma instância do Compute Engine a partir da imagem do contêiner no Artifact Registry. O campoenv
está incluído para especificar a zona e a região do Compute Engine.{ "name": "gcr.io/cloud-builders/docker", "args": [ "push", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ] }, { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
- uma etapa do build do docker para invocar o comando
Inclua outros campos de configuração do build. É possível configurar ainda mais o build com a inclusão de campos como
machineType
,tags
, outimeout
. Para ver a lista completa de campos que você pode incluir no arquivo de configuração do build, consulte Visão geral da configuração do build.No exemplo a seguir, a etapa de build
gcr.io/google.com/cloudsdktool/cloud-sdk
expira após 240 segundos.{ "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "timeout": "240s", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
Veja o seguinte snippet para o exemplo completo de um arquivo de configuração do build básico:
No exemplo, as imagens de contêiner são armazenadas no Artifact Registry. Se o build produzir artefatos que não sejam de contêineres, eles poderão ser armazenados no Cloud Storage usando o campo
artifacts
. Para receber instruções sobre como fazer isso, consulte Como armazenar imagens e artefatos.
A seguir
- Saiba como executar suas versões manualmente e com acionadores usando o arquivo de configuração da versão.
- Aprenda a gravar configurações de versão para incluir dependências e criar, testar e implantar artefatos.