AWS CodeDeploy

此页面记录了使用下一个主要版本 dpl v2 进行的部署,该版本当前处于 Beta 发布阶段。请参阅 我们的博文 以了解更多信息。当前默认版本为 dpl v1。请查看 此处提供的 dpl v1 文档

请务必阅读 v2 部署概述

Travis CI 可以在构建成功后自动将您的构建上传到 AWS CodeDeploy

对于最小配置,请将以下内容添加到您的 .travis.yml

deploy:
  - provider: s3
    # rest of S3 deployment for your app
    # ⋮
  - provider: codedeploy
    access_key_id: <encrypted access_key_id>
    secret_access_key: <encrypted secret_access_key>
    bucket: <bucket>
    key: <bucket_key>
    application: <app>
    deployment_group: <deployment_group>
    edge: true # opt in to dpl v2

在此示例中,您的代码将部署到 AWS 区域 us-east-1 中名为 <app> 的现有 CodeDeploy 应用程序。

可以在 此处 找到完整的示例。

状态 #

对 AWS Code Deploy 部署的支持是 *稳定的**。

已知选项 #

使用以下选项可进一步配置部署。

access_key_id AWS 访问密钥 — 必需机密、类型:字符串
secret_access_key AWS 密钥访问密钥 — 必需机密、类型:字符串
application CodeDeploy 应用程序名称 — 必需、类型:字符串
deployment_group CodeDeploy 部署组名称 — 类型:字符串
revision_type CodeDeploy 修订版本类型 — 类型:字符串,已知值:s3github,downcase:true
commit_id GitHub 中的提交 ID — 类型:字符串
repository GitHub 中的存储库名称 — 类型:字符串
bucket S3 中的 S3 存储桶 — 类型:字符串
region AWS 可用区 — 类型:字符串,默认值:us-east-1
file_exists_behavior 如何处理部署目标位置中已存在的文件 — 类型:字符串,默认值:disallow,已知值:disallowoverwriteretain
wait_until_deployed 等待部署完成 — 类型:布尔值
bundle_type 修订版本的捆绑类型 — 类型:字符串
key 修订版本的 S3 存储桶密钥 — 类型:字符串
description 修订版本的描述 — 类型:字符串
endpoint S3 端点 URL — 类型:字符串

共享选项 #

cleanup 在部署之前清理 Git 工作目录中的构建工件 — 类型:布尔值
run 在部署成功完成后的执行命令 — 类型:字符串或字符串数组

环境变量 #

如果所有选项以 AWS_CODEDEPLOY_ 为前缀,则可以作为环境变量提供。

例如,access_key_id 可以提供为

  • AWS_ACCESS_KEY_ID=<access_key_id>
  • CODEDEPLOY_ACCESS_KEY_ID=<access_key_id>

    插值变量 #

以下变量可用于在 description 上进行插值

  • application
  • bucket
  • bundle_type
  • commit_id
  • deployment_group
  • endpoint
  • file_exists_behavior
  • git_author_email
  • git_author_name
  • git_branch
  • git_commit_author
  • git_commit_msg
  • git_sha
  • git_tag
  • key
  • region
  • repository
  • revision_type
  • build_number

插值使用语法 %{variable-name}。例如,"Current commit sha: %{git_sha}" 将生成一个包含当前 Git sha 的字符串。

此外,当前构建环境中存在的环境变量可以通过标准 Bash 变量插值来使用。例如:“当前构建编号:${TRAVIS_BUILD_NUMBER}”。有关设置的默认环境变量列表,请参阅 此处

保护机密 #

机密选项值应作为构建配置(.travis.yml 文件)中的加密字符串或存储库设置中的环境变量提供。

可以在存储库的设置页面或使用 travis env set 设置环境变量

travis env set AWS_ACCESS_KEY_ID <access_key_id>

要加密将选项值添加到 .travis.yml 文件时,请使用 travis encrypt

travis encrypt <access_key_id>

或使用 --add 将其直接添加到 .travis.yml 文件中。请注意,此命令必须在存储库的根目录中运行

travis encrypt --add deploy.access_key_id <access_key_id>

等待部署 #

默认情况下,构建将在触发 CodeDeploy 部署后立即继续。要等待部署完成,请使用 wait_until_deployed 选项

deploy:
  provider: codedeploy
  # ⋮
  wait_until_deployed: true

Travis CI 将等待部署完成,并记录其是否成功。

捆绑类型 #

您的应用程序的 bundleType 是根据 .travis.yml 中设置的 key 的文件扩展名推断的。

如果您的 .travis.yml 同时包含两者,并且它们不匹配,请将 bundle_type 显式设置为正确的值。

指定 AWS 区域 #

您可以使用 region 选项显式指定要部署到的 AWS 区域

deploy:
  provider: codedeploy
  # ⋮
  region: us-west-1

Pull Request #

请注意,Pull Request 构建完全跳过部署步骤。

另请参阅 #