GoReleaser也可以生成snap
包.snapcraft是一种新的打包格式,可以让您将项目直接发布到Ubuntu商店。从那里它将安装在所有的支持的Linux发行版,具有自动和更新事件。
你可以在snapcraft 文档中阅读更多相关信息.
可用选项:
# .goreleaser.yml
snapcraft:
# 您可以更改包的名称。
# Default: `{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}`
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
# 替换包名称中的 GOOS和GOARCH。
# key 应该是有效的 GOOS或GOARCH。
# value 是各自的替代品。
# 默认值为空。
replacements:
amd64: 64-bit
386: 32-bit
darwin: macOS
linux: Tux
# snap的名称。这是可选的。
# 默认为项目名称。
name: drumroll
# 然后将snap发布到snapcraft商店。
# 请记住,您首先需要`snapcraft login`。
# 默认值为false。
publish: true
# 您提供了惊人的snap软件。
# 最多79个字符。
summary: Software to create fast and easy drum rolls.
# 这是您的snap的描述。你有一两段话要告诉你
# 关于snap的最重要的故事。保持在100字以内,
# 我们住在推文空间,你的描述希望在短时间内看起来很好
# 商店。
description: |
这是最好的滚筒应用。
安装它,愉快!
# 在它准备好了,将snap发布给所有用户之前的挡板,
# `devel`将让你只发布到'edge`和'beta`版本到商店
# `stable`也会让你发布`candidate`和`stable`版本
# 有关该频道的更多信息:
# Https://snapcraft.io/docs/reference/channels
grade: stable
# 您可以设置snap,以遵循三种不同的限制策略:
# `strict`,`devmode`和`classic`。
# 快速严格的限制建议仅在您自己的命名空间中进行读写。
# 额外严格捕获的权限可以声明为应用程序的“插件”,这里
# 我稍后会解释。有关限制的更多信息:
# Https://snapcraft.io/docs/reference/confinement
confinement: strict
# GoReleaser构建的每个二进制文件都是snap中的应用程序。在这一部分
# 您可以声明这些二进制文件的其他详细信息。这是可选的。
apps:
# 应用程序的名称必须,与二进制构建的名称或snap的名称相同。
drumroll:
# 如果您的应用需要其他权限,才能在其默认值之外工作
# 下面空间中,宣布它们。
# 您可以阅读有关可用插头的文档
# 允许的可用内容:
# Https://snapcraft.io/docs/reference/interfaces。
plugs: ["home", "network"]
# 如果您希望自己的应用始终自动后台启动
# 你可以使它成为一个简单的守护进程。
daemon: simple
# 如果要将args传递给二进制文件,可以使用
# Args选项。
args: --foo
了解有关命名模板引擎的更多信息.
请注意,GoReleaser不会安装snapcraft
,或它的任何依赖.