1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-10 03:47:03 +02:00
goreleaser/www/content/scoop.md
Manuel Vogel eb7ba2a294 feat: add gitlab for releases (#1038)
* outlines gitlab client integration

* makes client parameter more explicit

* adds gitlab url to config

* changes releaseID to string to adapt to gitlab

* updates to latest gitlab client lib 0.18

* fixes copy paster in gitlab upload func

* fixes gitlab typo in config

* adds gitlab token to env and context

* release now uses the client factory method

* skips brew pipe if it is not a github release

* add github tokentype to publish tests

* skips scoop pipe if it is not a github release

* corrects brew skip msg

* adds gitlab token to main test

* adds gitlab to release docs

* validates config and errors accordingly

* adapt release pipe name to include gitlab

* fixes gitlab client after testing

* moves not-configured brew and scoop pipe checks as first check

* adds more debug to gitlab client

* adapts changelog generation for gitlab markdown

* adds debug log for gitlab changelog

* env needs to run before changelog pipe

* moves gitlab default download url to default pipe

* moves multiple releases check to from config to release pipe

* release differs now for github and gitlab

* adds debug gitlab release update msgs

* moves env pipe as second after before because it determines the token type other pipes depend on

* adaptes error check on gitlab release creation

* Revert "adaptes error check on gitlab release creation"

This reverts commit 032024571c.

* simplifies gitlab client logic. removes comments

* skips tls verification for gitlab client if specified in config

* updates the docs

* adds clarification that brew and scoop are not supported if it is a gitlab release

* fixes copy paster in release.md

* adds missing blob pipe in defaults and publish due to missing in merge

* updates comment in gitlab client
2019-06-29 11:02:40 -03:00

86 lines
2.3 KiB
Markdown

---
title: Scoop
series: customization
hideFromIndex: true
weight: 100
---
After releasing to GitHub (GitLab is not supported yet), GoReleaser can generate and publish a
_Scoop App Manifest_ into a repository that you have access to.
The `scoop` section specifies how the manifest should be created. See
the commented example bellow:
```yml
# .goreleaser.yml
scoop:
# Template for the url.
# Default is "https://github.com/<repo_owner>/<repo_name>/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
url_template: "http://github.mycompany.com/foo/bar/releases/{{ .Tag }}/{{ .ArtifactName }}"
# Repository to push the app manifest to.
bucket:
owner: user
name: scoop-bucket
# Git author used to commit to the repository.
# Defaults are shown.
commit_author:
name: goreleaserbot
email: goreleaser@carlosbecker.com
# Your app's homepage.
# Default is empty.
homepage: "https://example.com/"
# Your app's description.
# Default is empty.
description: "Software to create fast and easy drum rolls."
# Your app's license
# Default is empty.
license: MIT
# Persist data between application updates
persist:
- "data"
- "config.toml"
```
By defining the `scoop` section, GoReleaser will take care of publishing the
Scoop app. Assuming that the project name is `drumroll` and the current tag is
`v1.2.3`, the above configuration will generate a `drumroll.json` manifest in
the root of the repository specified in the `bucket` section.
```json
{
"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/"
}
```
Your users can then install your app by doing:
```sh
scoop bucket add app https://github.com/org/repo.git
scoop install app
```
You can check the
[Scoop documentation](https://github.com/lukesampson/scoop/wiki) for more
details.