GitHub Actions可重用工作流传递vars变量报错问题咨询
问题分析与解决方案
这是预期行为,属于GitHub Actions文档未明确强调的限制——在uses块的with参数中,无法直接引用vars(包括仓库级、环境级变量)。
原因解析
GitHub Actions解析uses块(初始化可重用工作流)时,处于工作流执行的最早期阶段,此时vars这类上下文还未加载,直接引用会被解析为空字符串,触发必填参数的非空校验错误。官方文档仅明确了secrets的传递规则,未提及vars在uses块中的可用性限制。
解决办法
通过前置Job中转vars的值,转为Job输出后再传递给可重用工作流:
# .github/workflows/deploy.yaml jobs: fetch_var: runs-on: ubuntu-latest outputs: some_arg_a: ${{ steps.export.outputs.val }} steps: - id: export run: echo "val=${{ vars.SOME_ARG_A }}" >> $GITHUB_OUTPUT running_foo: needs: fetch_var uses: MyOrg/github-workflow-foo/.github/workflows/workflow.yaml@v1 with: some-arg-a: ${{ needs.fetch_var.outputs.some_arg_a }}
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

