我试图将我的复合github动作的脚本存储在动作目录中,然后使用脚本内的复合动作的输入。让我用一个例子来解释
- 假设我在myorg组织 我创建了一个名为actions的存储库我创建了一个名为
mydemo
的目录我创建了一个文件mydemo/action.yaml
我创建了另一个文件mydemo/echo.sh
在mydemo/action.yaml
它工作,如果我有
name: "mydemo"
description: ""
inputs:
name:
description: ""
runs:
using: "composite"
steps:
- name: echo hello world
run: |
echo ${{ inputs.name }}
shell: bash
如果我输入
name: "mydemo"
description: ""
inputs:
name:
description: ""
runs:
using: "composite"
steps:
- name: echo hello world
run: |
source ${GITHUB_ACTION_PATH}/echo.sh
shell: bash
然后在mydemo/echo.sh
中写echo "Hello World"
但它不工作,如果在mydemo/echo.sh
我写echo ${{ inputs.name }}
如何在mydemo/echo.sh
中访问${{ inputs.name }}
?
您可以使用env
将inputs
设置为环境变量,然后在脚本中访问它们。
参见runs.steps[*].env
示例(仅相关部分):
script.sh
#!/bin/bash
echo "$NAME"
action.yml
# ...
runs:
using: 'composite'
steps:
- name: Test
env:
NAME: '${{ inputs.name }}'
shell: bash
run: $GITHUB_ACTION_PATH/script.sh