部署 (v2)
此页面记录了使用下一主要版本 dpl v2 进行的部署,该版本目前处于 Beta 发布阶段。请参阅 我们的博文 获取详细信息。当前默认版本为 dpl v1。请查看 此处提供的 dpl v1 文档。
如何加入 v2 #
为了使用我们部署工具的 v2
版本,请将以下内容添加到您的 .travis.yml
中
deploy:
provider: <provider>
# ⋮
edge: true
支持的提供商 #
支持以下提供商的持续部署
- anynines
- AWS CloudFormation
- AWS CodeDeploy
- AWS Elastic Beanstalk
- AWS Lambda
- AWS OpsWorks
- AWS S3
- Azure Web Apps
- Bintray
- Bluemix CloudFoundry
- Boxfuse
- Cargo
- Chef Supermarket
- Cloud 66
- Cloud Foundry
- Convox
- Datica
- Engine Yard
- GitHub Pages
- GitHub Releases
- Gleis
- Google App Engine
- Google Cloud Storage
- Google Firebase
- Hackage
- Hephy
- Heroku
- Launchpad
- NPM
- Netlify Drop
- OpenShift
- packagecloud
- Puppet Forge
- PyPI
- Rackspace Cloud Files
- RubyGems
- Scalingo
- 脚本
- Snap Store
- Surge.sh
- TestFairy
- Transifex
要部署到自定义或不受支持的提供商,请使用 after-success 构建步骤 或 脚本提供商。
Pull Request #
请注意,Pull Request 构建完全跳过部署步骤。
成熟度级别 #
为了传达 dpl 对特定服务的支持的当前开发状态和成熟度,根据给定的标准,相应的提供商将标记以下成熟度级别之一
dev
- 提供商正在开发中(初始级别)alpha
- 提供商已完全测试beta
- 提供商已处于 alpha 阶段至少一个月,并且已观察到成功的现实世界生产部署stable
- 提供商已处于 beta 阶段至少两个月,并且没有开放的问题被归类为严重问题(例如部署失败、记录的功能中断等)。
Dpl v2 代表了重写,因此所有提供商的支持都已重置为
dev
或alpha
,具体取决于测试状态。
对于 stable
以外的所有级别,都会将一条消息打印到您的构建日志中,以告知您当前状态。
保护密钥 #
密钥选项值应作为构建配置(.travis.yml
文件)中的加密字符串或存储库设置中的环境变量给出。
环境变量可以在存储库的设置页面上设置,也可以使用 travis env set
设置。
travis env set <PROVIDER_NAME>_PASSWORD <password>
要加密将选项值添加到 .travis.yml
文件时,请使用 travis encrypt
travis encrypt <password>
或者使用 --add
直接将其添加到 .travis.yml
文件中。请注意,此命令必须在存储库的根目录中运行
travis encrypt --add deploy.password <password>
条件部署 #
只有在满足某些条件时才能部署。
请参阅 条件部署。
清理 Git 工作目录 #
默认情况下,在部署步骤之前不会清理您的 Git 工作目录,因此它可能包含先前步骤中遗留的工件。
对于许多提供商和部署目标,这不是问题,甚至是有意的。
如果确实需要清理构建过程中所做更改的工作目录,可以将以下内容添加到 .travis.yml
文件中
deploy:
provider: [your provider]
cleanup: true
请注意,dpl(我们的部署集成工具)的先前版本用于重置您的工作目录并使用
git stash --all
删除构建期间所做的所有更改。为了保留更改,必须使用skip_cleanup: true
选择退出。事实证明,此默认值仅对极少数提供商有用,并且已在 dpl v2 中更改。您仍然可能会发现提及skip_cleanup
的外部教程或帖子。
在部署步骤之前和之后运行命令 #
有时您想在部署之前或之后运行命令。
您可以为此使用 before_deploy
和 after_deploy
步骤。
请注意:只有在 Travis CI 实际部署时才会触发这些步骤。
before_deploy: "echo ready?"
deploy:
# ⋮
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh
部署到多个目标 #
通过将配置作为列表添加到 deploy
部分,可以运行对不同提供商(或使用不同配置的同一提供商)的多个部署。例如,如果您想同时部署到 s3 和 Heroku,您的 deploy
部分将如下所示
deploy:
- provider: s3
access_key_id: <AWS access key id>
secret_access_key: <AWS secret access key>
# ⋮
- provider: heroku
api_key: <Heroku api key>
# ⋮
运行边缘版本 #
如果您贡献或试验 dpl(我们的部署工具),请确保您使用 GitHub 上的边缘版本
deploy:
provider: <your-provider>
edge:
branch: master
source: <GitHub handle>/dpl # only needed for forks of travis-ci/dpl
您可以在此处找到有关为 dpl 贡献的更多信息 此处。