首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能再在GitHub工作流中推送标记,以及如何修复它?

为什么我不能再在GitHub工作流中推送标记,以及如何修复它?
EN

Stack Overflow用户
提问于 2022-05-12 18:02:55
回答 1查看 880关注 0票数 3

我的团队有一个GitHub发布工作流程,可以在push上自动标记prod分支。在过去的一年里,它一直运转良好,最近的一次成功是2022年5月2日。这个工作流在2022年5月11日失败了,现在我不知道它是如何工作的。5月5日发布了一个新的git版本,但是我已经看过了所有的变化,没有什么是显而易见的。

错误是:

代码语言:javascript
复制
Run git push --tags
  git push --tags
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.8.12/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.12/x64/lib
To github.com:ORGANIZATION/PACKAGE.git
 ! [remote rejected] PACKAGE/v0.3.13 -> PACKAGE/v0.3.13 (shallow update not allowed)
error: failed to push some refs to 'github.com:ORGANIZATION/PACKAGE.git'
Error: Process completed with exit code 1.

下面是工作流步骤失败的一个最小示例:

代码语言:javascript
复制
  check:
    runs-on: ubuntu-latest
    needs: correct_repository
    steps:
      - name: Check out code
        uses: actions/checkout@v2
        with:
          ssh-key: ${{ secrets.DEPLOY_MACHINE_SSH }}
      - name: Set up Python 3.8
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
      - name: Install bump2version
        run: python -m pip install bump2version
      - name: Extract package version
        id: package
        run: |
          echo -n "::set-output name=version::"
          bump2version --dry-run --list patch | grep ^current_version | sed -r s,"^.*=",,
      - name: Tag package
        run: git tag PACKAGE/v${{ steps.package.outputs.version }}
      - name: Publish tags
        run: git push --tags 
    outputs:
      package-version: ${{ steps.package.outputs.version }}

实际的步骤稍微复杂一些,但是当我通过复制粘贴shell命令从工作流日志进行本地模拟时,上面的步骤就失败了。

据我所知,默认情况下,行动/结帐使用深度1对存储库进行浅克隆,并且已经这样做了相当长的时间(最后一次成功的运行指定了深度1)。从目前尚不清楚“推入/从浅层回购”应如何表现。开始,你就不应该从浅薄的克隆中推出来了。

这个工作流应该失败是有道理的,但是:

  • 为什么它在2.36.1 git发布之前就成功了(或者这个版本与git无关)?
  • 如果我想从工作流中推送标签,推荐的签出参数是什么?
  • 这在actions/checkout@v3中是否有固定的机会?
EN

回答 1

Stack Overflow用户

发布于 2022-05-13 21:44:29

好的,感谢@torek@TonyArra在上面的评论中指出了解决方案,并放松了我对可能发生哪些改变以开始破坏工作流的想法。最终修复以增加为操作/签出配置的获取深度:

代码语言:javascript
复制
      - name: Check out code
        uses: actions/checkout@v2
        with:
          ssh-key: ${{ secrets.CMU_DELPHI_DEPLOY_MACHINE_SSH }}
          fetch-depth: 5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72220249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档