You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Action跳过前置步骤后成功通知未触发的修复问询

问题修复方案

问题原因

原工作流中notification任务的if: ${{ success() }}依赖全局工作流状态判断,当buildImageAndPush被跳过(状态为skipped)时,即使deploy执行成功,全局success()函数不会判定为true(因为存在未执行的任务),导致成功通知无法触发。而notificationFailure使用的failure()函数会在任意任务失败时触发,因此不受跳过任务的影响。

修复后的工作流代码

jobs:
  buildImageAndPush:
    if: ${{ !inputs.only-deploy }}
    uses: MY_WS/common/.github/workflows/build-publish-docker.yml

  deploy:
    needs: buildImageAndPush
    if: ${{ always() }}
    uses: MY_WS/common/.github/workflows/docker-deploy.yml

  notification:
    needs: deploy
    if: ${{ needs.deploy.result == 'success' }}
    uses: MY_WS/common/.github/workflows/notification.yml
    with:
      status: SUCCESS

  notificationFailure:
    needs: deploy
    if: ${{ needs.deploy.result == 'failure' }}
    uses: MY_WS/common/.github/workflows/notification.yml
    with:
      status: FAILURE

修复说明

  • 将notification的触发条件改为${{ needs.deploy.result == 'success' }},精准判断deploy任务自身的执行结果,无视其他任务是否被跳过,只要deploy成功就触发通知。
  • 同步将notificationFailure的条件改为${{ needs.deploy.result == 'failure' }},让失败通知的触发逻辑与成功通知保持统一,避免全局状态判断的歧义。

内容的提问来源于stack exchange,提问作者DeejonZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:35:24