deployment - Travis CI - 每个部署提供程序的条件“before_deploy”脚本
问题描述
我正在尝试使用 Travis CI 部署到 2 个不同的提供商(npm、firebase),我的.travis.yml
文件如下所示:
branches:
only:
- master
- /v\d+\.\d+\.\d+/
install:
- yarn
before_deploy:
# first provider
- yarn build:storybook
# second provider
- yarn build:library
- cp package.json lib/
- cd lib
deploy:
- provider: firebase
...
on:
branch: master
- provider: npm
...
on:
tags: true
all_branches: true
现在我想仅在部署到 firebase(主)时触发#first provider
内部块。before_deploy
有什么办法可以让里面有条件before_deploy
吗?甚至是only: -branch-name
内部before_deploy
?
解决方案
您可以将您的条件指定为 bash 脚本:
before_deploy:
# first provider
- |
if [[ $TRAVIS_BRANCH != $TRAVIS_PULL_REQUEST_BRANCH && $TRAVIS_BRANCH = 'master ]]; then
yarn build:storybook
fi
# second provider
- yarn build:library
- cp package.json lib/
- cd lib
这样做是为了防止脚本yarn build:storybook
在有人向 master 发出新的 pull request 时运行;但仅在主分支由于推送(或任何触发构建)由 travis 构建时运行。
有关更多变量,请参见此处: https ://docs.travis-ci.com/user/environment-variables/#default-environment-variables
推荐阅读
- amazon-web-services - 如何使用假定角色为其他帐户执行 terraform 配置?
- flutter - 动态创建和删除文本字段颤动
- testing - 运行登录操作占jmeter中总请求的1/50或1/100比例
- asp.net - Xml 变量替换不适用于 web.config 中的单个部分键
- arrays - 如何将文本文件放入数组。使用 awk,每个元素在空行上分开
- view - SwiftUI View 和 ViewModel 使用 Binding 和 Observed 变量修改
- css - 如何禁用 Next.js 生产构建将我的 rgba 颜色转换为 hsla
- apache-zeppelin - Apache Zeppelin:线程“main”中的异常 java.lang.RuntimeException:在 zeppelin 网页中找不到 core-site.xml
- mysql - MySQL 和 PHPmyAdmin 在同一查询中给出不同的结果
- python - 如何将多个列表合并为一个?