我一直在尝试在 Github 操作中构建 CICD 管道,但我们无法同时处理 if 和 or 条件。下面是我们的代码片段示例,
name: Build Non prod
needs: [rules]
if: ${{ (needs.rules.outputs.branch_name != 'production') || (needs.rules.outputs.branch_name != 'staging') }}
steps:
- name: Checkout
uses: actions/checkout@v2
所以这个任务不应该在分支中运行production
,staging
但是当动作在staging
分支中运行时,这个作业也会与其他不适用于staging
环境的作业一起被触发。
我们有什么办法可以拥有if
和or
条件?
更新:
该条件将不起作用,以下更新的条件将起作用。
if: ${{ (needs.rules.outputs.branch_name != 'production') && (needs.rules.outputs.branch_name != 'staging') }}