我正在尝试if
在 github 操作中的条件中使用环境变量,如下所示:
name: Worfklow
on:
push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: EXIT step
if: $GITHUB_REF == 'specific-branch'
run: exit 1
Run Code Online (Sandbox Code Playgroud)
如果当前分支等于特定分支,我想退出。
不幸的是,github 操作控制台显示错误:
Unexpected symbol: '$GITHUB_REF'
Run Code Online (Sandbox Code Playgroud)
我可以$GITHUB_REF
在 a run:
(它包含当前分支的地方)中使用,但不能在if:
. 我究竟做错了什么?
dhi*_*ilt 55
虽然最初的问题已经在没有环境变量的情况下得到解决,但我想分享如何将它与 if 条件一起使用。
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Set env BRANCH
run: echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV
- name: Set env NEED
run: |
if [[ $BRANCH == 'master' && $GITHUB_EVENT_NAME == 'push' ]]; then
echo "NEED=true" >> "$GITHUB_ENV"
else
echo "NEED=false" >> "$GITHUB_ENV"
fi
- name: Skip Deploy?
if: env.NEED != 'true'
run: echo "Only pushing to 'master' causes automatic deployment"
...
Run Code Online (Sandbox Code Playgroud)
前两个步骤设置 2 个环境变量,第三步演示了在 if 条件中使用这些变量需要遵循的语法。
las*_*any 10
像这样做
if: github.ref == 'specific-branch'
Run Code Online (Sandbox Code Playgroud)
参考
https://github.community/t5/GitHub-Actions/GitHub-Actions-branch-conditional/td-p/29794
如果你想检查作业级别的环境变量(参考 Github context),你可以这样做:
env:
MY_VAR: Dummy
jobs:
build:
name: Build
runs-on: ubuntu-latest
outputs:
myVar: ${{ steps.init.outputs.myVar }}
steps:
- name: Environment variables to output
id: init
run: |
echo "myVar=${{ env.MY_VAR }}" >> $GITHUB_OUTPUT
Run Code Online (Sandbox Code Playgroud)
并在另一项工作中使用它:
second_job:
name: Second Job
needs: build
if: needs.build.outputs.myVar == 'Dummy'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8073 次 |
最近记录: |