为了账号安全,请及时绑定邮箱和手机立即绑定

如何制作 goreleaser 脚本在本地构建 deb 文件?

如何制作 goreleaser 脚本在本地构建 deb 文件?

Go
幕布斯7119047 2023-07-17 17:53:34
我是 Golang 的绝对新手,但我想修改 Go 构建脚本以仅在本地构建文件,而不是将其发布到 GitHub。如何进行?
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我已经克隆了您的存储库并在我的本地计算机上尝试。步骤如下:

  1. git克隆

  2. 执行试运行(在“真正”发布之前测试所有内容:

    $ goreleaser release --skip-publish
  3. 显示没有错误

• 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 20.75s

执行goreleaser进行发布


$ goreleaser release

goreleaser 将在项目内创建dist文件夹,该文件夹将包含分发包(deb、rpm)。


我遇到了一些问题,这就是我所做的

错误=缺少 GITHUB_TOKEN、GITLAB_TOKEN 和 GITEA_TOKEN

创建 github 或 gitlab 令牌(https://github.com/settings/tokens)并将其作为环境变量


export GITHUB_TOKEN=xxxxyyyyyzzzzz

解决问题。


预挂接失败:xxxx 不在已知的 GOPATH/src 内

正如我在你看到的goreleaser.yaml


hooks:

pre: dep ensure

您正在使用 dep Ensure,检查$GOPATH并确保$GOPATH指向 Go 项目的正确路径。


error=dist 不为空,在运行 goreleaser 之前将其删除或使用 --rm-dist 标志

之前已经创建了 dist 文件夹,您可以手动删除该文件夹或--rm-dist在执行 goreleaser 命令时添加标志


$ goreleaser release --skip-publish --rm-dist

错误=nfpm 失败:$PATH 中不存在 rpmbuild

这个错误是因为我在mac机器上运行所以没有安装rpmbuild而发生的,安装rpm,rpmbuild解决这个问题


$ brew install rpm

error=git 当前处于脏状态,请检查您的管道中哪些内容可以更改以下文件:M Gopkg.lock

Goreleaser 似乎会检查文件差异,因为运行钩子(dep 确保)更新 Gopkg.lock 并且此更改/更新不会推送到 git。解决方案始终是将更改推送到 git。


错误=git标签v1.0.5不是针对提交3ae83eebd904d33cc549117254e857ebea04df90制作的

从 GoReleaser 文档中读取“GoReleaser 强制执行语义版本控制,并且在不兼容的标签上会出错。您的标签应该是有效的语义版本。如果不是,GoReleaser 将出错。”


推送到 git 后,请确保必须更新标签,在本例中我将标签更新为 v1.0.6(之前为 v1.0.5)。


error=GitHub/GitLab/Gitea Releases: 未能发布工件 POST http://xxxyyyzzz/releases: 404 Not Found []

确保发布文本在那里。


查看完整回答
反对 回复 2023-07-17
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信