continuous-integration - Travis:如何在特定提交消息上执行阶段
问题描述
我只想在特定的提交消息上执行 travis 阶段(最后在提交消息中的文本标签上,但现在让我们简化一下)。Travis 允许使用if
语句进行条件执行(我更喜欢使用它,因为我的 travis 文件的结构)。Travis 文档提到了 2 个可用于获取提交消息的变量:
commit_message
我TRAVIS_COMMIT_MESSAGE
尝试使用它们。在这些情况下:
- stage: Deploy
if: commit_message = "deploy" AND type = push
- stage: Deploy
if: $TRAVIS_COMMIT_MESSAGE = "deploy" AND type = push
无论提交消息的内容是什么,该阶段都会始终执行。
在这种情况下:
- stage: Deploy
if: env(TRAVIS_COMMIT_MESSAGE) = "deploy" AND type = push
无论提交消息的内容是什么,该阶段都不会执行。
我还尝试添加conditions: v1
.travis 文件的根目录,但没有任何效果。似乎比较运算符没有按预期工作(尤其是在前两种情况下 - 如果字符串不相等,怎么可能总是如此??)。
解决方案
推荐阅读
- ruby-on-rails - Rails:是否可以在 Rails 中将 PostgreSQL 数据库条目分配给 Vue?
- angularjs - 如何在没有 .then() 的情况下使用 .finally()?
- docker-swarm - 如何在 Docker 中运行 swarm?
- scala - 在 IntelliJ 中启动 scalastyle_config.xml 的软重新加载
- c# - Azure 是否具有使用密钥进行分布式锁定的开箱即用方式?
- hyperledger-fabric - 订购者功能 V1_3 是必需的,但不受支持:但是,我使用的是 1.3.0 图像
- swift - ReactiveSwift 的终身目标
- excel - VBA如何返回绝对单元格引用值以附加到超链接引用
- oracle-apex - 无需提交页面的替换字符串更新
- javascript - 如何在 JavaScript 中制作带有两个链接/选择的弹出窗口——但不仅仅是确定或取消?