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

GitHub Actions:空输入条件判断失效问题(多阶段Docker构建)

解决GitHub Actions自动触发时多阶段Docker镜像构建步骤被跳过的问题

问题出在你对inputs对象的判断逻辑上——非手动触发(如push、PR、发布)时,inputs对象本身是存在的,只是未设置Stage参数,所以!inputs这个条件永远为false,导致自动触发时步骤因不满足条件被跳过。

修改if条件即可解决,你需要针对自动触发的场景(此时inputs.Stage未定义)添加判断,同时保留手动触发时的参数校验:

修正后的步骤配置

- name: Build and Push Image - Server
  uses: docker/build-push-action@v6
  if: ${{ inputs.Stage == null || inputs.Stage == 'all' || inputs.Stage == 'server' }}
  with:
    platforms: linux/arm64
    push: true
    file: Dockerfile
    target: server
    tags: ${{ env.SERVER_IMAGE_TAG }}

另一种更清晰的写法(结合触发事件)

如果你想明确区分手动触发和自动触发场景,也可以通过github.event_name判断:

- name: Build and Push Image - Server
  uses: docker/build-push-action@v6
  if: ${{ github.event_name != 'workflow_dispatch' || inputs.Stage == 'all' || inputs.Stage == 'server' }}
  with:
    platforms: linux/arm64
    push: true
    file: Dockerfile
    target: server
    tags: ${{ env.SERVER_IMAGE_TAG }}

两种写法的效果一致:

  • 自动触发(push、PR等)时,直接执行该构建步骤
  • 手动触发时,仅当Stage参数为all或server时才执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:17:35