我正在尝试从另一个工作流中调用可重复使用的工作流,并传递一些输入变量。在调用者工作流中,我有一些环境变量,我想将其作为输入传递给可重复使用的工作流,方法如下:
env:
SOME_VAR: bla_bla_bla
ANOTHER_VAR: stuff_stuff
jobs:
print:
runs-on: ubuntu-latest
steps:
- name: Print inputs passed to the reusable workflow
run: |
echo "some var: $SOME_VAR"
echo "another var: $ANOTHER_VAR"
call_reusable:
uses: ...
with:
input_var: $SOME_VAR
another_input_var: $ANOTHER_VAR
可重用的工作流程:
on:
workflow_dispatch:
workflow_call:
inputs:
input_var:
required: true
type: string
another_input_var:
required: true
type: string
jobs:
the_job:
runs-on: ubuntu-latest
steps:
- name: Print inputs
run: |
echo "input_var: ${{ inputs.input_var }}"
echo "another_input_var: ${{ inputs.another_input_var }}"
打印传递给可重用工作流的输入
步骤正常运行 - 所有变量都正确打印出来。然而,在可重用工作流(被调用者)中,打印输入
步骤不按预期工作 - 所有变量都为空。
我在文档中没有找到任何提示表明我的方法有问题,因此,我认为这应该是可以工作的。尽管如此,查看日志发现有些问题,因为在可重用工作流(被调用者)中,我看到:
Run echo "input_var: $SOME_VAR"
echo "another_input_var: $ANOTHER_VAR"
shell: /usr/bin/bash -e {0}
input_var:
another_input_var:
我尝试在with:
块中使用$(echo)
包装值,但没有成功。
有什么想法吗?
env
中?结合在调用工作流中使用secrets: inherit
,似乎可以解决这个问题。 - Janosh