登录
首页 >  Golang >  Go问答

设置 GoReleaser 将 brew tap 推送到多个存储库

来源:stackoverflow

时间:2024-03-22 19:54:34 291浏览 收藏

为私有 GitHub 存储库设置 GitHub 操作脚本,以便将发布和 brew tap 推送到单独的公共 Git 存储库时,用户遇到了一个错误。该错误表明无法找到匹配的标签,导致 snapshot 被强制创建。本文将提供一个解决方案,其中涉及使用语义化版本,添加标签,并更新 .goreleaser.yml 文件和工作流程文件以指定正确的存储库和标签格式。

问题内容

我希望在私有 github 存储库上设置一个 github 操作脚本,该脚本将发布和 brew tap 推送到单独的公共 git 存储库。我创建了一个 .gorelease.yml 文件并指定了一个 brews 部分,如下所示:

brews:
- name: myrepo
  goarm: 6
  github:
    owner: myrepo
    name: homebrew-myrepo
  homepage: "https://myrepo.com"

.gorelease.yml 文件工作正常并成功构建二进制文件。我还在 github 操作中为公共存储库指定了 github 令牌,因此应该可以工作。

当我运行 github 操作时,出现此错误:

fatal: no tag exactly matches '38d505213e445a673a34812929ff858595e1a887'
   ⚠️ No tag found for commit 38d5052. Snapshot forced
   ...
   • signing artifacts        
      • pipe skipped              error=artifact signing is disabled
   • docker images            
      • pipe skipped              error=docker section is not configured
   • publishing               
      • pipe skipped              error=publishing is disabled
   • release succeeded after 159.12s

我不明白为什么当前的 git 存储库是相关的。因为我正在推送到一个单独的存储库,所以这个脚本不应该检查该存储库上的标签(而不是当前的标签)吗?即使在这种情况下,我如何在每次推送时自动创建标签?


解决方案


goreleaser 使用语义化版本来确定版本,因此您必须以 v1.2.4 格式添加标签

git tag v1.2.4
git push --tags

.goreleaser.yml

brews:
  - github:
      owner: my-repo
      name: homebrew-myrepo
    folder: formula
    homepage: https://github.com/my-repo/abc

工作流程文件

    - name: GoReleaser
      uses: goreleaser/goreleaser-action@v2
      with:
        version: latest
        args: release --rm-dist
      env:
        GITHUB_TOKEN: ${{ secrets.GR_TOKEN }}

注意:不要忘记创建一个新令牌并将其作为机密添加到相关存储库中。

本篇关于《设置 GoReleaser 将 brew tap 推送到多个存储库》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>