我有一个GitHub操作工作流,可以通过pull_request和工作流调度两种方式触发。
在pull_request期间,其中一个步骤生成将在以后的步骤中使用的输出。
在工作流调度期间,用户手动输入将在稍后步骤中使用的自定义输出。
如何在不出现空值的情况下使用该输出?我只能使用其中一个输出来赋值给一个变量,如何使它既接受又接受?
发布于 2022-12-01 02:36:17
如何利用github.event_name
上下文有条件地设置一个变量,您可以在以后的步骤中使用?这需要额外的一步,但相对简单。
my-workflow.yml
name: Use input or job output
on:
workflow_dispatch:
inputs:
my_input:
description: Some workflow input
type: string
pull_request:
jobs:
job1:
runs-on: ubuntu-latest
steps:
- id: set_output
run: echo "my_output=helloworld" >> $GITHUB_OUTPUT
- name: Save job output OR workflow dispatch to Env
run: |
if [[ ${{ github.event_name == 'workflow_dispatch' }} == true ]]; then
my_variable=${{ inputs.my_input }}
else
my_variable=${{ steps.set_output.outputs.my_output }}
fi
echo "my_variable=$my_variable" >> $GITHUB_ENV
- name: Use the variable from previous step
run: echo ${{ env.my_variable }}
如果您从workflow_dispatch
手动运行此操作,则env.my_variable
将是您输入的任何字符串。如果没有(由拉请求触发),env.my_variable
将是来自set_output
步骤的my_output
。
https://stackoverflow.com/questions/74393924
复制相似问题