Nesta página, explicamos como gerenciar módulos Go empacotados armazenados no Artifact Registry.
Antes de começar
- Se não existir um repositório de destino, crie um novo repositório. Escolha Go como formato do repositório.
- Verifique se você tem as permissões necessárias para o repositório.
- (Opcional) Configure padrões para comandos gcloud.
- Instale o Go 1.15 ou mais recente.
Instale o complemento package-go-module da CLI gcloud:
gcloud components install package-go-module
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:
-
Mostrar módulos:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Faça o download ou instale os módulos:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Adicione módulos a um repositório:
Gravador do Artifact Registry (
roles/artifactregistry.writer
) -
Exclua os módulos:
Administrador do repositório do Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível receber 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 pacote está armazenado.
- LOCATION pelo local regional ou multirregional 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 pela versão semântica do módulo no formato
vX.Y.Z
, em queX
é a versão principal,Y
é a versão secundária eZ
é a versão do patch. - SOURCE_LOCATION pelo caminho para o diretório raiz do módulo
Go. 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, o repositório e o local padrão quando os valores padrão forem configurados, execute o seguinte comando com o número da nova 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 pontos e hifens. Por exemplo, para fazer upload do pré-lançamento de um módulo com
o módulo de caminho example.com/foo
identificado por alpha.x.12m.5
, execute o
comando abaixo:
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
que os usuários importem uma mudança interruptiva, as versões principais após v1
precisam ter
caminhos de módulo diferentes das versões anteriores. A partir de v2
, a versão
principal é adicionada ao final do caminho do módulo.
Por exemplo, o caminho do módulo para v2.0.0
de example.com/foo
é
example.com/foo/v2
.
A prática recomendada é desenvolver versões principais após v1
em diretórios separados nomeados de acordo com o 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 os
valores padrão estiverem 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 seguinte comando para inspecionar um módulo Go enviado no projeto, repositório e local padrão quando os valores padrão estiverem 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 abaixo para conferir as versões de um módulo no projeto, repositório e local padrão quando os valores padrão estiverem 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 a procurar dependências do Artifact Registry e ignorar o banco de dados de soma de verificação. Siga as instruções para configurar a autenticação e o ambiente do Go em Configurar a autenticação para Go.
Se você estiver usando credenciais de curta duração para autenticação no Artifact Registry, será necessário atualizar o token OAuth executando o seguinte comando:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
Se o módulo ainda não tiver um arquivo
go.mod
, mude os diretórios na pasta do módulo e executego mod init
para criar um arquivogo.mod
para o pacote.go mod init MODULE_PATH
Substitua MODULE_PATH pelo caminho do módulo armazenado no Artifact Registry. Consulte a Referência dos módulos Go para mais informações.
Para exigir a versão do módulo armazenada no Artifact Registry, edite o arquivo
go.mod
para que fique assim: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.
Inclua o caminho do módulo como de costume na seção
import
do arquivomain.go
.Por exemplo, para importar um módulo com o caminho
example.com/foo
armazenado no Artifact Registry, sua seção de importação pode ser semelhante a esta:package main import ( foo "example.com/foo" ) func main() { ... }
Execute
go mod tidy
para fazer o download de dependências:go mod tidy
Execute o módulo normalmente:
go run .
O módulo armazenado no Artifact Registry é baixado e usado como uma dependência.
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
Abra a página Repositórios no console do Google Cloud.
Na lista de repositórios, clique no repositório apropriado.
A página Pacotes lista os pacotes no repositório.
Selecione o pacote que você quer excluir.
Clique em EXCLUIR.
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 local ou multirregião local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.
--async
Retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Para excluir versões de um pacote:
Console
Abra a página Repositórios no console do Google Cloud.
Na lista de repositórios, clique no repositório apropriado.
A página Pacotes lista os pacotes no repositório.
Clique em um pacote para visualizar as versões dele.
Selecione as versões que você quer excluir.
Clique em EXCLUIR.
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 local ou multirregião local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
A seguir
- Veja o Guia de início rápido do Go.
- Faça o download de arquivos individuais (em inglês) associados a um módulo ou uma versão sem usar comandos do Go.