Scoop

在发布到GitHub之后,GoReleaser可以生成,并发布一个 Scoop App Manifest 到您有权访问的存储库.

scoop部分指定应如何创建清单。请参阅下面的注释示例:

# .goreleaser.yml
scoop:
  # 网址模板。
  # 默认为"https://github.com/<repo_owner>/<repo_name>/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
  url_template: "http://github.mycompany.com/foo/bar/releases/{{ .Tag }}/{{ .ArtifactName }}"

  # 将应用清单推送到的存储库。
  bucket:
    owner: user
    name: scoop-bucket

  # 提交存储库的Git作者。
  # 显示默认值。
  commit_author:
    name: goreleaserbot
    email: goreleaser@carlosbecker.com

  # 您应用的主页。
  # 默认为空。
  homepage: "https://example.com/"

  # 你的应用程序的描述。
  # 默认为空。
  description: "Software to create fast and easy drum rolls."

  # 你的应用许可证
  # 默认为空。
  license: MIT

  # 在应用程序更新之间,保留的数据
  persist:
  - "data"
  - "config.toml"

通过定义scoop部分,GoReleaser将负责发布Scoop应用程序。假设项目名称是drumroll且目前的标签是v1.2.3,上面的配置会生成一个drumroll.json清单,显示在bucket字段指定的存储库根目录.

{
  "version": "1.2.3",
  "architecture": {
    "64bit": {
      "url":
        "https://github.com/user/drumroll/releases/download/1.2.3/drumroll_1.2.3_windows_amd64.tar.gz",
      "bin": "drumroll.exe",
      "hash": "86920b1f04173ee08773136df31305c0dae2c9927248ac259e02aafd92b6008a"
    },
    "32bit": {
      "url":
        "https://github.com/user/drumroll/releases/download/1.2.3/drumroll_1.2.3_windows_386.tar.gz",
      "bin": "drumroll.exe",
      "hash": "283faa524ef41987e51c8786c61bb56658a489f63512b32139d222b3ee1d18e6"
    }
  },
  "homepage": "https://example.com/"
}

然后,您的用户可以执行以下操作来安装您应用

scoop bucket add app https://github.com/org/repo.git
scoop install app

你可以查看一下Scoop文档更多细节.