AWS CodeDeploy
此页面记录了使用 dpl v1 进行部署,目前这是默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。请参阅 我们的博客文章 获取详细信息。dpl v2 文档可以在这里找到。
Travis CI 可以在构建成功后自动触发 AWS CodeDeploy 上的新部署。
对于使用 S3 的最小配置,请将以下内容添加到您的 .travis.yml
中
deploy:
- provider: s3
# rest of S3 deployment for MyApp.zip
# ⋮
- provider: codedeploy
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
bucket: "S3 Bucket"
key: latest/MyApp.zip
application: MyApp
deployment_group: MyDeploymentGroup
请注意,在此示例中,Travis CI 将尝试部署到 AWS 区域 us-east-1
中名为 MyApp 的现有 CodeDeploy 应用程序。
完整的示例可以 在这里 找到。
您可以在 此处 找到您的 AWS 访问密钥。建议加密该密钥。
如果您的 CodeDeploy 应用程序位于除 us-east-1
之外的任何区域,请将区域字段添加到 .travis.yml
(请参阅 要部署到的 AWS 区域)。
假设您已安装 Travis CI 命令行客户端,您可以像这样操作
travis encrypt --add deploy.secret_access_key
系统将提示您在命令行中输入您的 API 密钥。
您还可以让 travis
工具为您设置好一切
travis setup codedeploy
请记住,上述命令必须在您的项目目录中运行,以便它可以为您修改 .travis.yml
。
如果要从 Travis CI 构建上传捆绑包,此命令还将提供设置 S3 部署 的选项。
要从中部署的分支 #
您可以使用 on 选项明确指定要从中部署的分支
deploy:
provider: codedeploy
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
bucket: "S3 Bucket"
key: latest/MyApp.zip
bundle_type: zip
application: MyApp
deployment_group: MyDeploymentGroup
on:
branch: production
或者,您还可以配置 Travis CI 从所有分支部署
deploy:
provider: codedeploy
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
bucket: "S3 Bucket"
key: latest/MyApp.zip
bundle_type: zip
application: MyApp
deployment_group: MyDeploymentGroup
on:
all_branches: true
从 Pull Request 触发的构建永远不会触发发布。
S3 部署或 GitHub 部署 #
对于使用 GitHub 的最小配置,请将以下内容添加到您的 .travis.yml
中
deploy:
- provider: codedeploy
revision_type: github
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
application: "Your Codedeploy application"
deployment_group: "The Deployment group associated with the codedeploy application"
region: "Region in which your ec2 instance is."
请注意,region
应与配置 codedeploy 的实例区域匹配。
另请注意,GitHub 部署针对特定提交,任何未版本化的文件都不会被部署。如果您需要将未版本化的文件添加到部署中,请改用 S3 部署。
等待部署 #
默认情况下,构建将在触发 CodeDeploy 部署后立即继续。要等待部署完成,请使用 wait_until_deployed 选项
deploy:
provider: codedeploy
wait_until_deployed: true
# ⋮
Travis CI 将等待部署完成,并记录其是否成功。
捆绑类型 #
您的应用程序的 bundleType 是从 .travis.yml
中设置的 key
或 s3_key
的文件扩展名推断出来的。
如果您的 .travis.yml
同时包含两者,并且它们不匹配,请将 bundle_type
显式设置为正确的值。
条件部署 #
只有在满足某些条件时才能进行部署。请参阅 使用 on:
进行条件发布。
关于 .gitignore
的说明 #
由于此部署策略依赖于 git
,请注意部署将遵循 .gitignore
。
如果您的 .gitignore
文件匹配构建创建的内容,请使用 before_deploy
更改其内容。
在部署前后运行命令 #
有时您需要在部署前后运行命令。您可以为此使用 before_deploy
和 after_deploy
阶段。只有在 Travis CI 实际进行部署时才会触发这些阶段。
before_deploy: "echo 'ready?'"
deploy:
# ⋮
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh
要部署到的 AWS 区域 #
您可以使用 region 选项明确指定要部署到的 AWS 区域
deploy:
provider: codedeploy
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
bucket: "S3 Bucket"
key: latest/MyApp.zip
bundle_type: zip
application: MyApp
deployment_group: MyDeploymentGroup
region: us-west-1