如何在从复合动作调用的脚本文件中访问复合githb动作的输入



我试图将我的复合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 }}?

您可以使用envinputs设置为环境变量,然后在脚本中访问它们。

参见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