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.