在GitHub动作期间,我想知道分支的名称:
我需要一个像develop
,master
或feature/xxx
这样的字符串(而不是refs / pull /…)。
${{ github.ref }}
变量给了我refs/heads/develop
。我怎么只能得到develop
?
答案 0 :(得分:5)
您可以像下面这样创建GITHUB_REF
最后一部分的步进输出。
on: push
jobs:
example:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set output
id: vars
run: echo ::set-output name=short_ref::${GITHUB_REF#refs/*/}
- name: Check output
run: echo ${{ steps.vars.outputs.short_ref }}
答案 1 :(得分:1)
您可以从github
之类的${{ github.head_ref }}
对象获得它
答案 2 :(得分:0)
您可以使用以下语法获取分支名称-
name: build
on: [push, pull_request]
jobs:
dummy-fake:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Verify run id
run : echo Run Id $GITHUB_RUN_ID
- name: Output the branch name
run: echo $(echo $GITHUB_REF | cut -d'/' -f 3)
答案 3 :(得分:0)
另一种选择是将其作为环境变量:
steps:
- name: Set env.BRANCH
run: echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV
- name: Is main?
if: env.BRANCH == 'main'
run: echo "This is 'main' branch"
答案 4 :(得分:0)
这将创建一个具有以下行为的环境变量 GIT_BRANCH:
master
,而不是 refs/heads/master
)master
,而不是 refs/pull/123/merge
)jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set environment variables
run: |
# Short name for current branch. For PRs, use target branch (base ref)
GIT_BRANCH=${GITHUB_BASE_REF:-${GITHUB_REF#refs/heads/}}
echo "GIT_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV
这是如何工作的:
refs/heads/master
)。在 PR 内部,它是 PR 分支名称 (refs/pull/123/merge
)。所以这个脚本使用 GITHUB_BASE_REF 如果设置,否则它使用 GITHUB_REF 并删除“refs/heads/”前缀。