条件部署
此页面记录了使用下一个主要版本 dpl v2 的部署,该版本目前处于测试版发布阶段。请参阅 我们的博客文章 获取详细信息。当前默认版本是 dpl v1。查看 此处提供的 dpl v1 文档。
请务必阅读 v2 部署概述。
使用任何部署提供程序的 on
选项,将构建设置为仅在特定情况下部署。
deploy:
provider: <provider>
# ⋮
on:
branch: release
condition: $MY_ENV = value
如果满足 on
部分中指定的所有条件,则构建将部署。
以下条件可用
仓库 #
要仅在构建发生在特定存储库上时部署,请添加 repo
,格式为 owner_name/repo_name
deploy:
provider: <provider>
# ⋮
on:
repo: travis-ci/dpl
分支 #
默认情况下,部署仅在 master
分支上进行。您可以使用 branch
和 all_branches
选项覆盖此设置。
例如,要仅在 production
分支上部署,请使用
deploy:
provider: <provider>
# ⋮
on:
branch: production
要从所有分支部署,请使用
deploy:
provider: <provider>
# ⋮
on:
all_branches: true
条件 #
您可以指定单个 Bash condition
,该条件需要评估为 true
才能进行部署。
这必须是一个字符串值,它将被包装到 if [[ <condition> ]]; then <deploy>; fi
中。
例如,要仅在 $CC
为 gcc
时部署,请使用
deploy:
provider: s3
# ⋮
on:
condition: $CC = gcc
标签 #
您可以使用 tags
选项指定是否在标签构建上部署。如果设置为 true
,则部署仅在标签构建上进行,如果设置为 false
,则不会在标签构建上进行。
例如,要仅在标签构建上部署,请使用
deploy:
provider: <provider>
# ⋮
on:
tags: true
tags
可以是true
、false
或任何其他字符串
这将检查环境变量 $TRAVIS_TAG
是否已设置。根据您的工作流程,即使这是在启动时被显式初始化的非标签构建,您也可以显式设置 $TRAVIS_TAG
。
将 tags
设置为 true
会导致忽略 branch
条件,否则会忽略 $TRAVIS_TAG
,并考虑 branch
条件。
条件部署示例 #
这使用自定义脚本 deploy.sh
部署,仅针对 staging
和 production
分支上的构建。
deploy:
provider: script
script: deploy.sh
on:
all_branches: true
condition: $TRAVIS_BRANCH =~ ^(staging|production)$
这使用自定义脚本 deploy_production.sh
和 deploy_staging.sh
部署,具体取决于触发作业的分支。
deploy:
- provider: script
script: deploy_production.sh
on:
branch: production
- provider: script
script: deploy_staging.sh
on:
branch: staging
这仅在 $CC
设置为 gcc
时部署到 S3。
deploy:
provider: s3
access_key_id: <encrypted access_key_id>
secret_access_key: <encrypted secret_access_key>
bucket: <bucket>
on:
condition: $CC = gcc