GitHub Action同Job内使用Output返回空值问题求助
问题排查与解决
你的代码存在两个关键问题,导致无法获取到预期的输出值:
步骤未设置
id属性
要通过steps.<step-id>.outputs引用步骤输出,必须给对应步骤指定id。你的abc步骤缺少id: abc配置,GitHub Actions无法识别该步骤的输出内容。YAML缩进错误
GitHub Actions的YAML配置对缩进要求严格,你步骤内容的缩进不符合规范,会导致配置解析失败,进而无法正确生成输出。
另外,虽然::set-output命令目前仍可兼容使用,但GitHub官方推荐使用echo "KEY=VALUE" >> $GITHUB_OUTPUT的方式设置输出,更贴合当前规范。
修正后的代码(推荐写法)
jobs: build: outputs: fav-number: ${{ steps.abc.outputs.FAV_NUMBER }} steps: - name: abc id: abc # 添加步骤id run: | echo "FAV_NUMBER=3" >> $GITHUB_OUTPUT # 使用官方推荐的输出设置方式 - name: readoutout run: | echo "${{ steps.abc.outputs.FAV_NUMBER }}"
若坚持使用旧命令的修正版本
jobs: build: outputs: fav-number: ${{ steps.abc.outputs.FAV_NUMBER }} steps: - name: abc id: abc # 添加步骤id run: | echo '::set-output name=FAV_NUMBER::3' - name: readoutout run: | echo "${{ steps.abc.outputs.FAV_NUMBER }}"
修正后,readoutout步骤会正确输出3,同时job的fav-number输出也能正常被跨job调用。
内容的提问来源于stack exchange,提问作者Diego
相关产品推荐
相关产品推荐

