Flo*_*ian 5 git github github-actions
我试图找到 GitHub Action 中一个分支与另一个分支分离的提交的 SHA。
在本地,我可以通过运行来实现这一点git merge-base <commit> <commit>。我正在尝试在工作流程中实现相同的目标。
我有以下内容workflow.yaml:
name: "Find common ancestor"
on:
pull_request:
branches:
- master
jobs:
find:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Find common ancestor
run: git merge-base "$GITHUB_HEAD_REF" "$GITHUB_BASE_REF"
Run Code Online (Sandbox Code Playgroud)
当工作流在打开分支“dev”到“master”的拉取请求时运行时,工作流会报告以下错误:
2021-08-14T19:17:04.5732118Z fatal: Not a valid object name dev
Run Code Online (Sandbox Code Playgroud)
我所有的研究都表明需要设置获取深度。据我了解,如果不将 fetch-depth 设置为 0,则只会获取浅克隆。不幸的是,即使将 fetch-depth 设置为 0,工作流程也无法找到必要的引用,而且我也没有想法。
有谁知道为什么 merge-base 无法识别引用,或者知道寻找共同祖先的替代方法?
编辑:
运行时git branch -a,我发现 refs 前面带有remote/origin/*,这解释了为什么在调用时找不到它们merge-base。为什么我退房后无法访问当地分行?
FindCommon:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Find common ancestor
env:
BASE_BRANCH: ${{ github.base_ref }}
run: git merge-base --fork-point origin/$BASE_BRANCH
Run Code Online (Sandbox Code Playgroud)
对我有用。
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |