Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como integrar com o Cloud Build

Nesta página, descrevemos como configurar o Cloud Build para armazenar artefatos criados em um repositório do Artifact Registry.

Antes de começar

  1. Se não existir um repositório de destino, crie um novo repositório.
  2. A conta de serviço padrão do Cloud Build tem permissões para fazer upload e download de repositórios no mesmo projeto. Se o Cloud Build estiver em um projeto diferente dos seus repositórios, será preciso conceder permissões à conta de serviço do Cloud Build no projeto com os repositórios.

Como configurar uma versão do Docker

Depois de conceder permissões ao repositório de destino, você estará pronto para configurar o Docker para autenticar e enviar um pacote ao repositório. Recomendamos usar a conta de serviço do Cloud Build.

Para configurar o Docker:

  1. Configure a autenticação do Docker.

  2. No seu arquivo de configuração da versão, adicione a etapa para criar e enviar as imagens.

    O exemplo a seguir usa os seguintes valores para uma imagem que está no mesmo diretório que o arquivo de configuração da versão:

    • O local do repositório us-central1
    • O ID do projeto da versão, resolvido com a substituição padrão $PROJECT_ID
    • O nome do repositório my-repo
    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE}', '.' ]
    images:
    - 'us-central1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE}'
    

    As variáveis ${_REPOSITORY} e ${_IMAGE} são usadas como o nome do repositório e o da imagem no repositório para que possam ser substituídas no momento da criação por meio de substituições personalizadas do Cloud Build.

    Essa abordagem é útil se você quiser usar o mesmo arquivo de configuração de versão para enviar imagens a repositórios de ambientes diferentes, como teste, preparo ou produção.

    Por exemplo, este comando substitui my-repo pelo nome do repositório e my-image pelo nome da imagem.

    gcloud builds submit --config=cloudbuild.yaml \
      --substitutions=_REPOSITORY="my-repo",_IMAGE="my-image" .
    

Como configurar uma versão do Maven

Depois de conceder permissões ao repositório de destino, você estará pronto para configurar o Maven para autenticar e enviar um pacote ao repositório. Recomendamos usar a conta de serviço do Cloud Build.

Para configurar o Maven:

  1. Configure a autenticação para Maven. Certifique-se de especificar o projeto de destino e o repositório corretos no arquivo pom.xml.

  2. No arquivo de configuração de versão do Cloud Build, adicione a etapa para fazer upload do pacote com o Maven:

    steps:
    - name: gcr.io/cloud-builders/mvn
      args: ['deploy']
    

Como configurar uma versão do npm

Depois de conceder permissões ao repositório de destino, você estará pronto para xconfigurar o npm para autenticar e enviar um pacote para o repositório. Recomendamos a integração usando a conta de serviço do Cloud Build.

Para configurar o NPM:

  1. Configure a autenticação para o npm. Especifique o projeto de destino e o repositório corretos no arquivo .npmrc .

  2. Coloque o arquivo .npmrc no mesmo diretório do arquivo de configuração da versão do Cloud Build para que o Cloud Build possa encontrar suas configurações de autenticação.

  3. No arquivo de configuração da versão, adicione a etapa para fazer upload do pacote para o repositório.

    steps:
    - name: gcr.io/cloud-builders/npm
      args: ['publish', ${_PACKAGE}]
    

    A variável ${_PACKAGE} representa o pacote. Substitua essa substituição personalizada do Cloud Build no momento da compilação pelo local do pacote, pela pasta ou um arquivo tarball compactado com gzip que contém package.json e os outros arquivos em seu pacote.

    Por exemplo, este comando faz upload de um pacote em um diretório chamado src que está no mesmo diretório que o arquivo .npmrc e o arquivo de configuração da criação.

    gcloud builds submit --config=cloudbuild.yaml --substitutions=_PACKAGE="src" .