仅对非草稿拉取请求运行操作

Rub*_*ius 22 pull-request github-actions

我已将 Github 操作设置为在创建草稿拉取请求时跳过,但当拉取请求准备好供审核时不会触发它。当我起草 PR 从草稿更改为准备审查时,有什么方法可以运行该操作吗?

pull_request:
  types: ['opened', 'edited', 'reopened', 'synchronize', 'ready_for_review']

jobs:
 build:
    if: github.event.pull_request.draft == 'false'
    runs-on: ubuntu-latest
Run Code Online (Sandbox Code Playgroud)

Ben*_* W. 36

pull_request.draft是一个布尔值,但您将其视为字符串,因此比较中的类型不匹配。

根据docs1 ,在这种情况下操作数被强制为数字:如果 true 和false则左侧(布尔值)变为0;右侧(字符串)变为NaN,因此您的if语句永远不会计算为true

要修复,请删除引号:

    if: github.event.pull_request.draft == false
Run Code Online (Sandbox Code Playgroud)

可以使用否定运算符来缩短它!,但因为!对于 YAML 来说是特殊的,所以必须用引号引起该值:

    if: '! github.event.pull_request.draft'
Run Code Online (Sandbox Code Playgroud)