无法从其他Job读取Github Actions Job输出的问题排查
Github Actions Job输出传递失败问题排查与修复
你遇到的问题核心是setup job的outputs配置里,把步骤输出的表达式用双引号包裹了。Github Actions会将带引号的内容视为纯字符串,不会解析其中的steps.prod_tag.outputs.prod_tag这类表达式,所以show_outputs job拿到的就是字符串字面量,而非实际的输出值。
修复方法
把setup job的outputs部分的引号去掉,让表达式被正确解析:
jobs: setup: runs-on: ubuntu-latest outputs: prod_tag: ${{ steps.prod_tag.outputs.prod_tag }} postgresql_version: ${{ steps.postgresql_version.outputs.postgresql_version }} # 后续步骤保持不变
额外优化建议
另外,::set-output命令已经被Github Actions弃用,推荐使用GITHUB_OUTPUT环境变量来设置步骤输出,写法更简洁规范:
- prod_tag步骤修改为:
- id: prod_tag run: | if [[ ${{ github.ref_type }} == "tag" ]]; then echo "prod_tag=${{ github.ref_name }}" >> $GITHUB_OUTPUT else echo "prod_tag=latest" >> $GITHUB_OUTPUT fi
- postgresql_version步骤修改为:
- id: postgresql_version run: echo "postgresql_version=${POSTGRESQL_VERSION}" >> $GITHUB_OUTPUT
内容的提问来源于stack exchange,提问作者beni0888
相关产品推荐
相关产品推荐

