我正在尝试在类似{@ 1}}的github动作中使用环境变量:
if
如果当前分支等于特定分支,我想退出。
不幸的是,github action控制台显示错误:
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
我可以在Unexpected symbol: '$GITHUB_REF'
(其中包含当前分支)中使用$GITHUB_REF
,但不能在run:
中使用。我在做什么错了?
答案 0 :(得分:3)
这样做
if: github.ref == 'specific-branch'
参考
https://github.community/t5/GitHub-Actions/GitHub-Actions-branch-conditional/td-p/29794
答案 1 :(得分:1)
虽然最初的问题已经在没有环境变量的情况下解决了,但我想分享一下如何在 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"
...
前两步设置了 2 个 env 变量,第三步演示了在 if 条件下使用这些变量需要遵循的语法。
答案 2 :(得分:0)
您可以在操作的推送部分使用一些限制
on:
push:
branches:
- '*' # matches every branch that doesn't contain a '/'
- '*/*' # matches every branch containing a single '/'
- '**' # matches every branch
- '!master' # excludes master