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

Github Actions条件步骤异常:READY为true却触发退出步骤

解决GitHub Action中Selenium Grid状态判断异常问题

问题根源

  • 使用jq '.value.ready'获取状态时,返回的是带双引号的字符串"true",而非布尔值true
  • GitHub Actions的环境变量均为字符串类型,因此env.READY实际存储值是"true"(带引号),和布尔true直接比较时不相等,导致env.READY != true条件成立,错误触发退出步骤

解决方法

方法一:修改jq命令输出原始字符串(推荐)

在jq命令中添加--raw-output(缩写-r)参数,去掉返回结果的引号,让READY变量存储纯字符串true:

- name: Get Selenium Grid status variables
  run: |
    echo "READY=$(curl 'http://localhost:4444/status' | jq -r '.value.ready')" >> $GITHUB_ENV
    NODE_COUNT=$(curl 'http://localhost:4444/status' | jq '.value.nodes | length')

(注:同时优化了NODE_COUNT的jq命令,合并为单个管道,减少一次curl请求)

方法二:修改if条件为字符串匹配

保持现有变量不变,将条件判断改为和带引号的字符串"true"比较:

- name: Confirm Grid is up
  if: ${{ env.READY }} == '"true"'
  run: echo "Selenium Grid is Ready"
- name: Exit if Grid is down
  if: ${{ env.READY }} != '"true"'
  run: echo "Selenium Grid wasn't ready, ending action" && exit 1

验证效果

修改后,当Selenium Grid处于就绪状态时,条件判断会正确匹配,仅触发Confirm Grid is up步骤,不会执行退出逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:37:20