Semaphore CI:如何通过when子句仅运行定时触发的任务?
解决Semaphore CI仅在定时调度触发时运行任务的问题
你遇到的问题是Semaphore CI的when条件表达式语法使用错误,正确写法需要用env()函数引用环境变量,并且使用==进行相等判断。
正确配置示例
dependencies: [System Tests] run: when: 'env("SEMAPHORE_WORKFLOW_TRIGGERED_BY_SCHEDULE") == "true"'
说明
- Semaphore的
when子句采用自定义表达式语法,必须通过env()函数引用环境变量,不能直接写变量名称。 - 相等判断需使用
==而非=,这是该表达式语法的硬性要求。 - 当工作流由自动调度器触发时,
SEMAPHORE_WORKFLOW_TRIGGERED_BY_SCHEDULE会被设置为字符串"true";其他触发场景下该变量不存在,条件返回false,任务不会执行。
内容的提问来源于stack exchange,提问作者user3144201
相关产品推荐
相关产品推荐

