自定义Composite GitHub Action输出无法在后续步骤读取的问题
GitHub Actions复合动作输出无法传递的解决方法
问题出在复合动作(using: composite)的输出需要显式绑定内部步骤的输出,直接在内部步骤写入$GITHUB_OUTPUT不会自动暴露为动作的输出。
修正后的复合动作配置
修改action_with_output/action.yml,给内部步骤添加ID,并在动作的outputs字段中显式映射该步骤的输出:
# action_with_output/action.yml name: action_with_output outputs: out: description: 'Some output' value: ${{ steps.internal-step.outputs.out }} # 绑定内部步骤的输出 runs: using: composite steps: - name: action with output step id: internal-step # 为内部步骤添加ID,用于引用输出 shell: bash run: echo "out=true" >> $GITHUB_OUTPUT
原因说明
复合动作的运行上下文与工作流步骤是隔离的:
- 直接在工作流步骤中写入
$GITHUB_OUTPUT时,输出会直接归属该工作流步骤,因此后续步骤可通过steps.step1.outputs.out直接引用。 - 但在复合动作内部,步骤的输出仅存在于动作内部上下文,必须通过
outputs字段显式声明并映射,才能将其暴露给调用该动作的工作流。
修正后,原工作流配置无需改动,Read output步骤即可正常输出true。
内容的提问来源于stack exchange,提问作者jparisu
相关产品推荐
相关产品推荐

