Gerenciar módulos Go

Esta página explica como gerenciar módulos Go empacotados armazenados no o Artifact Registry.

Antes de começar

  1. Se não existir um repositório de destino, crie um novo repositório. Escolher Go como formato de repositório.
  2. Verifique se você tem as permissões necessárias para o repositório.
  3. (Opcional) Configure padrões para comandos gcloud.
  4. Instalar Ir versão 1.15 ou mais recente.
  5. Instale o complemento package-go-module da CLI gcloud:

    gcloud components install package-go-module
  6. Configure o Go para autenticar com o Artifact Registry.

Papéis necessários

Para receber as permissões necessárias para gerenciar módulos, peça ao administrador para conceder a você os seguintes papéis do IAM no repositório:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Fazer upload de um módulo

Modos de repositório: padrão

Para empacotar e fazer upload de um módulo para seu repositório, execute o seguinte comando:

  gcloud artifacts go upload --project=PROJECT \
      --repository=REPOSITORY \
      --location=LOCATION \
      --module-path=MODULE_PATH \
      --version=VERSION \
      --source=SOURCE_LOCATION

Substitua:

  • PROJECT pelo ID de projeto do Google Cloud;
  • REPOSITORY pelo nome do repositório em que o é armazenado.
  • LOCATION com o modelo regional ou multirregional local do repositório.
  • MODULE_PATH pelo caminho do módulo. Por exemplo: example.com/foo Consulte a Referência dos módulos Go para mais informações.
  • VERSION com o versão semântica do módulo no formato vX.Y.Z, em que X é a versão principal, Y é a versão secundária e Z é a versão de patch.
  • SOURCE_LOCATION pelo caminho para o diretório raiz do Go. mais tarde neste módulo. Se você omitir a flag --source, o padrão será o diretório atual.

O upload do módulo é feito no Artifact Registry.

Para mais informações sobre como criar módulos Go, consulte este tutorial.

Fazer upload de uma nova versão do módulo

Modos de repositório: padrão

Para fazer upload de uma nova versão do seu módulo para o projeto, repositório e Local em que os valores padrão são configurados execute o seguinte comando com o novo número da versão:

  gcloud artifacts go upload \
      --module-path=MODULE_PATH \
      --version=VERSION \
      --source=SOURCE_LOCATION

Substitua VERSION pela versão do módulo atualizado. Por exemplo: para fazer upload da versão 0.1.1 de um módulo com o caminho example.com/foo, execute o seguinte comando:

  gcloud artifacts go upload \
      --module-path=example.com/foo \
      --version=v0.1.1 \
      --source=SOURCE_LOCATION

Para marcar um módulo como uma versão de pré-lançamento, adicione um traço após o VERSION e anexe os identificadores de pré-lançamento do módulo:

  gcloud artifacts go upload \
      --module-path=MODULE_PATH \
      --version=VERSION-PRE_RELEASE_IDENTIFIERS \
      --source=SOURCE_LOCATION

Substitua PRE_RELEASE_IDENTIFIERS por caracteres alfanuméricos ASCII separados por ponto caracteres e hifens. Por exemplo, para fazer upload do pré-lançamento de um módulo com no módulo do caminho example.com/foo identificado por alpha.x.12m.5, execute o seguinte comando:

  gcloud artifacts go upload \
      --module-path=example.com/foo \
      --version=v1.0.0-alpha.x.12m.5 \
      --source=SOURCE_LOCATION

Enviar uma nova versão principal

Modos de repositório: padrão

As versões principais não são compatíveis com as versões anteriores. Para evitar usuários de importar uma alteração interruptiva, as versões principais após v1 devem ter caminhos de módulo diferentes dos das versões anteriores. A partir de v2, as principais version é adicionada ao final do caminho do módulo.

Por exemplo, o caminho do módulo para v2.0.0 de example.com/foo seria example.com/foo/v2

A prática recomendada é desenvolver versões principais após v1 em diretórios separados nomeados com base no sufixo da versão principal.

Para fazer upload de uma nova versão principal 2.0.0 de um módulo com o caminho example.com/foo para o projeto, repositório e local padrão quando o valores padrão são configurados:

  gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0

Listar módulos

Modos de repositório: padrão

Execute o comando a seguir para inspecionar um módulo Go enviado na classe projeto, repositório e local em que valores padrão são configurados:

  gcloud artifacts packages list

A saída será semelhante a esta:

  Listing items under project my-project, location us-west1, repository my-repo.

  PACKAGE                   CREATE_TIME          UPDATE_TIME
  example.com/foo           2022-06-03T20:43:39  2022-06-20T20:37:40

Mais detalhes da versão do módulo

Modos de repositório: padrão

Execute o comando a seguir para exibir as versões de um módulo na classe projeto, repositório e local em que valores padrão são configurados:

  gcloud artifacts versions list --package=MODULE_PATH

A saída será semelhante a esta:

  Listing items under project my-project, location us-west1, repository my-repo, package example.com/foo.

  VERSION  DESCRIPTION  CREATE_TIME          UPDATE_TIME
  v0.1.0                2022-06-03T20:43:39  2022-06-03T20:43:39
  v0.1.1                2022-06-20T20:37:40  2022-06-20T20:37:40

Usar um módulo como dependência

Modos de repositório: padrão

Para importar módulos armazenados no Artifact Registry, é necessário instruir o Go to procure dependências do Artifact Registry e ignore a soma de verificação. no seu banco de dados. Siga as instruções para configurar a autenticação e o Go em Configurar a autenticação para Go.

  1. Se você estiver usando credenciais de curta duração para autenticação para o Artifact Registry, atualize seu token OAuth executando o seguinte comando:

      GOPROXY=proxy.golang.org \
      go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
    
  2. Se o módulo ainda não tiver um arquivo go.mod, mude os diretórios para da pasta do seu módulo e execute go mod init para criar um arquivo go.mod para seu pacote.

      go mod init MODULE_PATH
    

    Substitua MODULE_PATH pelo caminho do módulo armazenado em o Artifact Registry. Consulte a Referência dos módulos Go para mais informações.

  3. Para exigir a versão do módulo armazenada no Artifact Registry, edite seu arquivo go.mod se parecer com o seguinte:

    
    module example.com/bar
    
    go 1.19
    
    require example.com/foo v0.1.0
    

    Substitua:

    • example.com/foo é o caminho do módulo obrigatório.
    • v0.1.0 é a versão armazenada no Artifact Registry.
  4. Inclua o caminho do módulo como de costume na seção import do main.go. .

    Por exemplo, para importar um módulo com o caminho example.com/foo armazenado em Artifact Registry, a seção de importação poderá ser parecida com esta:

      
      package main
    
      import (
        foo "example.com/foo"
      )
    
      func main() {
    
        ...
    
      }
    
      
    
  5. Execute go mod tidy para fazer o download de dependências:

      go mod tidy
    
  6. Execute o módulo normalmente:

      go run .
    

    O módulo armazenado no Artifact Registry é baixado e usado como um .

Excluir módulos Go empacotados

Modos de repositório: padrão

É possível excluir um pacote e todas as versões dele ou excluir uma versão específica.

  • Depois de excluir um pacote, não é possível desfazer a ação.

Antes de excluir uma versão de pacote ou um pacote, verifique se você comunicou ou resolveu qualquer dependência importante nele.

Para excluir um pacote:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, clique no repositório apropriado.

    A página Pacotes lista os pacotes no repositório.

  3. Selecione o pacote que você quer excluir.

  4. Clique em EXCLUIR.

  5. Na caixa de diálogo de confirmação, clique em Excluir.

gcloud

Execute este comando:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Onde

  • PACKAGE é o nome do pacote no repositório.
  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, você pode omitir essa sinalização para usar o padrão.
  • LOCATION é um regional ou multirregional local. Use esta sinalização para ver repositórios em um local específico. Se você configurado um local padrão, é possível omitir essa sinalização para padrão.
  • --async Retorna imediatamente, sem aguardar a conclusão da operação em andamento.

Para excluir versões de um pacote:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, clique no repositório apropriado.

    A página Pacotes lista os pacotes no repositório.

  3. Clique em um pacote para visualizar as versões dele.

  4. Selecione as versões que você quer excluir.

  5. Clique em EXCLUIR.

  6. Na caixa de diálogo de confirmação, clique em Excluir.

gcloud

Execute este comando:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Onde

  • PACKAGE é o nome do pacote no repositório.
  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, você pode omitir essa sinalização para usar o padrão.
  • LOCATION é um regional ou multirregional local. Use esta sinalização para ver repositórios em um local específico. Se você configurado um local padrão, é possível omitir essa sinalização para padrão.
  • --async retorna imediatamente, sem aguardar a conclusão da operação em andamento.

A seguir