github.com/ahmet2mir/goreleaser@v0.180.3-0.20210927151101-8e5ee5a9b8c5/www/docs/customization/scoop.md (about) 1 --- 2 title: Scoop 3 --- 4 5 After releasing to GitHub or GitLab, GoReleaser can generate and publish a 6 _Scoop App Manifest_ into a repository that you have access to. 7 8 The `scoop` section specifies how the manifest should be created. See 9 the commented example below: 10 11 ```yaml 12 # .goreleaser.yml 13 scoop: 14 # Template for the url which is determined by the given Token (github or gitlab) 15 # Default for github is "https://github.com/<repo_owner>/<repo_name>/releases/download/{{ .Tag }}/{{ .ArtifactName }}" 16 # Default for gitlab is "https://gitlab.com/<repo_owner>/<repo_name>/-/releases/{{ .Tag }}/downloads/{{ .ArtifactName }}" 17 # Default for gitea is "https://gitea.com/<repo_owner>/<repo_name>/releases/download/{{ .Tag }}/{{ .ArtifactName }}" 18 url_template: "http://github.mycompany.com/foo/bar/releases/{{ .Tag }}/{{ .ArtifactName }}" 19 20 # Repository to push the app manifest to. 21 bucket: 22 owner: user 23 name: scoop-bucket 24 # Optionally a token can be provided, if it differs from the token provided to GoReleaser 25 token: "{{ .Env.SCOOP_BUCKET_GITHUB_TOKEN }}" 26 27 # Folder inside the repository to put the scoop. 28 # Default is the root folder. 29 folder: Scoops 30 31 # Git author used to commit to the repository. 32 # Defaults are shown. 33 commit_author: 34 name: goreleaserbot 35 email: goreleaser@carlosbecker.com 36 37 # The project name and current git tag are used in the format string. 38 commit_msg_template: "Scoop update for {{ .ProjectName }} version {{ .Tag }}" 39 40 # Your app's homepage. 41 # Default is empty. 42 homepage: "https://example.com/" 43 44 # Your app's description. 45 # Default is empty. 46 description: "Software to create fast and easy drum rolls." 47 48 # Your app's license 49 # Default is empty. 50 license: MIT 51 52 # Setting this will prevent goreleaser to actually try to commit the updated 53 # manifest leaving the responsibility of publishing it to the user. 54 # If set to auto, the release will not be uploaded to the scoop bucket 55 # in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1 56 # Default is false. 57 skip_upload: true 58 59 # Persist data between application updates 60 persist: 61 - "data" 62 - "config.toml" 63 64 # An array of commands to be executed before an application is installed. 65 # Default is empty. 66 pre_install: ["Write-Host 'Running preinstall command'"] 67 68 # An array of commands to be executed after an application is installed. 69 # Default is empty. 70 post_install: ["Write-Host 'Running postinstall command'"] 71 ``` 72 73 By defining the `scoop` section, GoReleaser will take care of publishing the 74 Scoop app. Assuming that the project name is `drumroll` and the current tag is 75 `v1.2.3`, the above configuration will generate a `drumroll.json` manifest in 76 the root of the repository specified in the `bucket` section. 77 78 ```json 79 { 80 "version": "1.2.3", 81 "architecture": { 82 "64bit": { 83 "url": 84 "https://github.com/user/drumroll/releases/download/1.2.3/drumroll_1.2.3_windows_amd64.tar.gz", 85 "bin": "drumroll.exe", 86 "hash": "86920b1f04173ee08773136df31305c0dae2c9927248ac259e02aafd92b6008a" 87 }, 88 "32bit": { 89 "url": 90 "https://github.com/user/drumroll/releases/download/1.2.3/drumroll_1.2.3_windows_386.tar.gz", 91 "bin": "drumroll.exe", 92 "hash": "283faa524ef41987e51c8786c61bb56658a489f63512b32139d222b3ee1d18e6" 93 } 94 }, 95 "homepage": "https://example.com/" 96 } 97 ``` 98 99 Your users can then install your app by doing: 100 101 ```sh 102 scoop bucket add org https://github.com/org/repo.git 103 scoop install org/drumroll 104 ``` 105 106 You can check the 107 [Scoop documentation](https://github.com/lukesampson/scoop/wiki) for more 108 details.