Configure o Swift Package Manager com CodeArtifact - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configure o Swift Package Manager com CodeArtifact

Para usar o Swift Package Manager para publicar pacotes ou consumir pacotes AWS CodeArtifact, primeiro você precisará configurar as credenciais para acessar seu CodeArtifact repositório. O método recomendado para configurar a CLI do Swift Package Manager com CodeArtifact suas credenciais e o endpoint do repositório é usando o comando. aws codeartifact login Você também pode configurar o Swift Package Manager manualmente.

Configurar o Swift o com o comando login

Use o aws codeartifact login comando para configurar o Swift Package Manager com CodeArtifact.

nota

Para usar o comando login, é necessário utilizar o Swift 5.8 ou posterior e o Swift 5.9 ou posterior é recomendado.

O comando aws codeartifact login fará o que segue:

  1. Obtenha um token de autenticação CodeArtifact e armazene-o em seu ambiente. O modo como as credenciais são armazenadas depende do sistema operacional do ambiente:

    1. macOS: uma entrada é criada no aplicativo macOS Chavechain.

    2. Linux e Windows: uma entrada é criada no arquivo ~/.netrc.

    Em todos os sistemas operacionais, se existir uma entrada de credenciais, o comando substituirá a entrada por um token.

  2. Busque a URL do endpoint CodeArtifact do repositório e adicione-a ao seu arquivo de configuração do Swift. O comando adiciona o URL do endpoint do repositório ao arquivo de configuração no nível do projeto localizado em /path/to/project/.swiftpm/configuration/registries.json.

nota

O comando aws codeartifact login aciona os comandos swift package-registry que devem ser executados a partir do diretório que contém o arquivo Package.swift. Por isso, o comando aws codeartifact login deve ser executado dentro do projeto Swift.

Para configurar o Swift o com o comando login
  1. Navegue até o diretório do projeto Swift que contém o arquivo Package.swift do projeto.

  2. Execute o seguinte comando aws codeartifact login.

    Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para ter mais informações, consulte Domínios entre contas.

    aws codeartifact login --tool swift --domain my_domain \ --domain-owner 111122223333 --repository my_repo \ [--namespace my_namespace]

A --namespace opção configura o aplicativo para consumir pacotes do seu CodeArtifact repositório somente se eles estiverem no namespace designado. CodeArtifact namespaces são sinônimos de escopos e são usados para organizar o código em grupos lógicos e evitar colisões de nomes que podem ocorrer quando sua base de código inclui várias bibliotecas.

O período de autorização padrão após chamar o login é de 12 horas e o login deve ser chamado para atualizar o token periodicamente. Para obter mais informações sobre o token de autorização criado com o comando login, consulte Tokens criados com o comando login.

Configurar o Swift sem o comando login

Embora seja recomendável configurar o Swift com o comando aws codeartifact login, você também pode configurar o Swift Package Manager sem o comando login atualizando manualmente a configuração do Swift Package Manager.

No procedimento a seguir, você usará o AWS CLI para fazer o seguinte:

  1. Obtenha um token de autenticação CodeArtifact e armazene-o em seu ambiente. O modo como as credenciais são armazenadas depende do sistema operacional do ambiente:

    1. macOS: uma entrada é criada no aplicativo macOS Chavechain.

    2. Linux e Windows: uma entrada é criada no arquivo ~/.netrc.

  2. Busque o URL do endpoint CodeArtifact do seu repositório.

  3. No arquivo de configuração ~/.swiftpm/configuration/registries.json, adicione uma entrada com o URL do endpoint do repositório e o tipo de autenticação.

Para configurar o Swift sem o comando login
  1. Em uma linha de comando, use o comando a seguir para buscar um token de CodeArtifact autorização e armazená-lo em uma variável de ambiente.

    • Substitua my_domain pelo nome do seu CodeArtifact domínio.

    • Substitua 111122223333 pela ID da AWS conta do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para ter mais informações, consulte Domínios entre contas.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (usando o shell de comando padrão):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Janelas PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
  2. Obtenha o endpoint do seu CodeArtifact repositório executando o comando a seguir. O endpoint do repositório é usado para direcionar o Swift Package Manager ao seu repositório para consumir ou publicar pacotes.

    • Substitua my_domain pelo nome do seu CodeArtifact domínio.

    • Substitua 111122223333 pela ID da AWS conta do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para ter mais informações, consulte Domínios entre contas.

    • Substitua my_repo pelo nome do seu CodeArtifact repositório.

    macOS and Linux
    export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text`
    Windows
    • Windows (usando o shell de comando padrão):

      for /f %i in ('aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text') do set CODEARTIFACT_REPO=%i
    • Janelas PowerShell:

      $env:CODEARTIFACT_REPO = aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text

    O URL a seguir é um exemplo de endpoint de repositório.

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my_repo/
    Importante

    Você deve incluir login ao final do endpoint de URL do repositório quando usado para configurar o Swift Package Manager. Isso é feito para você nos comandos deste procedimento.

  3. Com esses dois valores armazenados em variáveis de ambiente, envie-os ao Swift usando o comando swift package-registry login da seguinte forma:

    macOS and Linux
    swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
    Windows
    • Windows (usando o shell de comando padrão):

      swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
    • Janelas PowerShell:

      swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
  4. Em seguida, atualize o registro do pacote usado pelo seu aplicativo para que qualquer dependência seja retirada do seu CodeArtifact repositório. Esse comando deve ser executado no diretório do projeto em que você está tentando resolver a dependência do pacote:

    macOS and Linux
    $ swift package-registry set ${CODEARTIFACT_REPO} [--scope my_scope]
    Windows
    • Windows (usando o shell de comando padrão):

      $ swift package-registry set %CODEARTIFACT_REPO% [--scope my_scope]
    • Janelas PowerShell:

      $ swift package-registry set $Env:CODEARTIFACT_REPO [--scope my_scope]

    A --scope opção configura o aplicativo para consumir pacotes do seu CodeArtifact repositório somente se eles estiverem no escopo designado. Os escopos são sinônimos de CodeArtifact namespaces e são usados para organizar o código em grupos lógicos e evitar colisões de nomes que podem ocorrer quando sua base de código inclui várias bibliotecas.

  5. Você pode confirmar se a configuração foi realizada corretamente ao acessar o conteúdo do arquivo .swiftpm/configuration/registries.json no nível do projeto executando o seguinte comando no diretório do projeto:

    $ cat .swiftpm/configuration/registries.json { "authentication" : { }, "registries" : { "[default]" : { "url" : "https://my-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my-repo/" } }, "version" : 1 }

Agora que você configurou o Swift Package Manager com seu CodeArtifact repositório, você pode usá-lo para publicar e consumir pacotes Swift de e para ele. Para ter mais informações, consulte Consumir e publicar pacotes Swift.