检查 Github 操作上的环境变量是否为空作为步骤条件的最好方法是什么?我尝试过这种简单的方法,但似乎不起作用。
例如:
name: SimpleWorkflow
on:
push:
env:
MULTI_LINE_ARG: |
ARG1: value
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Fetching Local Repository
uses: actions/checkout@master
- name: run step if multiline not null
if: ${{env.MULTI_LINE_ARG}} != ""
run: echo multiline not null
Run Code Online (Sandbox Code Playgroud)
无论我如何尝试,我都无法正确检查 env 是否为空。
kop*_*por 14
如果按照为环境创建配置变量中所述添加了环境变量,则可以用于if: ${{ env:VAR_NAME == '' }}检查。
以下示例提供了环境变量的示例工作流程TEXT。
on:
workflow_dispatch:
push:
env:
env_text: ${{ vars.TEXT }}
jobs:
greeting_job:
runs-on: ubuntu-latest
steps:
- if: ${{ env.env_text == '' }}
run: |
echo "Empty text"
- if: ${{ env.env_text != '' }}
run: |
echo "Text: '$env_text'"
Run Code Online (Sandbox Code Playgroud)
如果变量未定义,则输出如下:
如果定义了变量,则输出如下:
背景:GitHub 人员知道分叉无法获取秘密的问题,但没有宣布具体活动:https ://github.community/t/github-workflow-not-running-from-pull-request-from-forked-存储库/16379/41?u=koppor
人们可以使用步骤的输出变量来确定秘密是否可用。
GitHub 中秘密的名称是SECRET。
- name: Check secrets presence
id: checksecrets
shell: bash
run: |
if [ "$SECRET" == "" ]; then
echo "secretspresent=NO" >> $GITHUB_OUTPUT
else
echo "secretspresent=YES" >> $GITHUB_OUTPUT
fi
env:
SECRET: ${{ secrets.SECRET}}
- name: run step if secret is present
if: (steps.checksecrets.outputs.secretspresent == 'YES')
run: echo secret is present
Run Code Online (Sandbox Code Playgroud)
注意:解决方案改编自https://github.community/t/if-express-with-context-variable/16558/6?u=koppor。
| 归档时间: |
|
| 查看次数: |
26752 次 |
| 最近记录: |