AWS CodeArtifact 现在支持 Swift 包管理器

AWS CodeArtifact 支持 Swift Package Manager

AWS CodeArtifact 现在支持 Swift Package Manager (SwiftPM),此前已经支持 Maven、NuGet、npm、pip 等包管理器。开发者可以使用 Apple 官方包管理器存储和检索 Swift 包,就像使用其他仓库一样。

主要功能

  • 发布与下载 Swift 包:开发者可以从 AWS 云中的 CodeArtifact 仓库发布和下载 Swift 包依赖项。
  • 兼容现有工具:CodeArtifact SwiftPM 与 Xcode、VSCode 和 Swift Package Manager 命令行工具兼容。

目标用户

CodeArtifact 主要面向希望严格控制项目依赖项的组织。这可能是出于法律或安全考虑。使用私有包仓库(如 AWS CodeArtifact)可以确保所有可用包符合特定的许可证要求,并且包是安全的,不包含可能导致供应链攻击的后门。

开发者的工作流程

使用 AWS CodeArtifact 不会改变开发者的日常工作流程,但需要进行以下三个步骤的设置:

  1. 获取认证令牌:从 CodeArtifact 获取认证令牌。
  2. 获取仓库终端节点:获取仓库的终端节点。
  3. 添加终端节点到 Swift Package Manager:将 CodeArtifact 仓库终端节点添加到 Swift Package Manager。

设置步骤

  1. 获取认证令牌

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token \
                                         --domain stormacq-test              \
                                         --domain-owner 012345678912         \
                                         --query authorizationToken          \
                                         --output text`
  2. 获取仓库终端节点

    export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint  \
                                   --domain stormacq-test               \
                                   --domain-owner 012345678912          \
                                   --format swift                       \
                                   --repository MySwiftRepo             \
                                   --query repositoryEndpoint           \
                                   --output text`
  3. 配置 Swift Package Manager
    可以手动配置 Swift Package Manager,或使用 AWS CLI 提供的命令:

    aws codeartifact login          \
        --tool swift                \
        --domain stormacq-test      \
        --repository MySwiftRepo    \
        --namespace aws             \
        --domain-owner 012345678912

发布包

设置完成后,开发者可以将包发布到仓库。

使用包

包在 AWS CodeArtifact 中可用后,开发者只需在 Package.swift 文件中提供 CodeArtifact URL,就像指定 Git 终端节点一样。

系统要求

  • Swift 版本:至少需要 Swift 5.8,这是 macOS 13 (Ventura) 和 Xcode 14 的默认工具链。
  • Linux 支持:可以从 Swift.org 下载所需的工具链。

认证令牌有效期

AWS 认证令牌的有效期为 12 小时,因此需要设置 cron 作业定期更新。

阅读 25
0 条评论