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 修订版本类型 — 类型:字符串,已知值:s3 、github ,downcase:true |
commit_id |
GitHub 中的提交 ID — 类型:字符串 |
repository |
GitHub 中的存储库名称 — 类型:字符串 |
bucket |
S3 中的 S3 存储桶 — 类型:字符串 |
region |
AWS 可用区 — 类型:字符串,默认值:us-east-1 |
file_exists_behavior |
如何处理部署目标位置中已存在的文件 — 类型:字符串,默认值:disallow ,已知值:disallow 、overwrite 、retain |
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 构建完全跳过部署步骤。