[英]Determine source branch name on merge push in GitHub action workflow
我有一个 GitHub 动作工作流,我正在将各种不同的源分支合并到目标分支主分支中。
这是读取环境变量值的测试工作流程:
name: Print Github Env Variables
on:
push:
branches:
- main
- test
pull_request:
branches:
- main
- test
workflow_dispatch:
jobs:
print-env-variabes:
name: Print Github Variables
runs-on: ubuntu-latest
steps:
- name: Print Github Variables
run: |
echo "GITHUB_WORKFLOW:$GITHUB_WORKFLOW"
echo "GITHUB_EVENT_NAME:$GITHUB_EVENT_NAME"
echo "GITHUB_EVENT_PATH:$GITHUB_EVENT_PATH"
echo "GITHUB_WORKSPACE:$GITHUB_WORKSPACE"
echo "GITHUB_SHA:$GITHUB_SHA"
echo "GITHUB_REF:$GITHUB_REF"
echo "GITHUB_HEAD_REF:$GITHUB_HEAD_REF"
- name: Print complete webhook event payload
run: cat $GITHUB_EVENT_PATH
在名为 test 的分支中创建 test.txt 文件,创建拉取请求,然后合并到 main 中。 那时你会看到我所看到的。
当我查看 GITHUB_REF 时,它包含主分支。
对于 pull_requests,GITHUB_HEAD_REF 包含“test”,但对于 push,它是空的。 当文件合并时我需要这个值,所以当推送发生时。
测试工作流程还打印出整个事件 json object,在推送事件中我也没有看到任何带有分支“测试”的条目。
如何在推送事件期间获取源分支的名称?
在合并请求后这对我有用:
export LATESTLOG=$(git log -1 --pretty=%B)
export SOURCEBRANCH=$(echo $LATESTLOG | awk -F '\\\\n' '{print $1}' | awk -F '/' '{print $2}' | awk '{print $1}')
name: Test closed branch
on:
pull_request:
types: [closed]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get PR closed number
env:
PR_NUMBER: ${{ toJson(github.event.number) }}
run: |
echo "$PR_NUMBER"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.