github.com/goreleaser/goreleaser@v1.25.1/www/docs/customization/scoop.md (about)

     1  # Scoop Manifests
     2  
     3  After releasing to GitHub, GitLab, or Gitea, GoReleaser can generate and publish a
     4  _Scoop App Manifest_ into a repository that you have access to.
     5  
     6  The `scoop` section specifies how the manifest should be created. See the
     7  commented example below:
     8  
     9  ```yaml
    10  # .goreleaser.yaml
    11  # Since: v1.18
    12  scoops:
    13    - # Name of the recipe
    14      #
    15      # Default: ProjectName
    16      # Templates: allowed (since v1.19)
    17      name: myproject
    18  
    19      # URL which is determined by the given Token (github or gitlab)
    20      #
    21      # Default:
    22      #   GitHub: 'https://github.com/<repo_owner>/<repo_name>/releases/download/{{ .Tag }}/{{ .ArtifactName }}'
    23      #   GitLab: 'https://gitlab.com/<repo_owner>/<repo_name>/-/releases/{{ .Tag }}/downloads/{{ .ArtifactName }}'
    24      #   Gitea: 'https://gitea.com/<repo_owner>/<repo_name>/releases/download/{{ .Tag }}/{{ .ArtifactName }}'
    25      # Templates: allowed
    26      url_template: "http://github.mycompany.com/foo/bar/releases/{{ .Tag }}/{{ .ArtifactName }}"
    27  
    28      # Directory inside the repository to put the scoop.
    29      #
    30      # Note that while scoop works if the manifests are in a directory,
    31      # 'scoop bucket list' will show 0 manifests if they are not in the root
    32      # directory.
    33      # In short, it's generally better to leave this empty.
    34      directory: Scoops
    35  
    36      # Which format to use.
    37      #
    38      # Valid options are:
    39      # - 'msi':     msi installers (requires the MSI pipe configured, Pro only)
    40      # - 'archive': archives (only if format is zip),
    41      #
    42      # Default: 'archive'
    43      # Since: v1.24 (pro)
    44      use: msi
    45  
    46      # Git author used to commit to the repository.
    47      commit_author:
    48        name: goreleaserbot
    49        email: bot@goreleaser.com
    50  
    51      # The project name and current git tag are used in the format string.
    52      #
    53      # Templates: allowed
    54      commit_msg_template: "Scoop update for {{ .ProjectName }} version {{ .Tag }}"
    55  
    56      # Your app's homepage.
    57      #
    58      # Templates: allowed (since v1.19)
    59      homepage: "https://example.com/"
    60  
    61      # Your app's description.
    62      #
    63      # Templates: allowed (since v1.19)
    64      description: "Software to create fast and easy drum rolls."
    65  
    66      # Your app's license
    67      license: MIT
    68  
    69      # Setting this will prevent goreleaser to actually try to commit the updated
    70      # manifest leaving the responsibility of publishing it to the user.
    71      # If set to auto, the release will not be uploaded to the scoop bucket
    72      # in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1
    73      #
    74      # Templates: allowed (since v1.19)
    75      skip_upload: true
    76  
    77      # Persist data between application updates
    78      persist:
    79        - "data"
    80        - "config.toml"
    81  
    82      # An array of commands to be executed before an application is installed.
    83      pre_install: ["Write-Host 'Running preinstall command'"]
    84  
    85      # An array of commands to be executed after an application is installed.
    86      post_install: ["Write-Host 'Running postinstall command'"]
    87  
    88      # An array of dependencies.
    89      #
    90      # Since: v1.16
    91      depends: ["git", "foo"]
    92  
    93      # A two-dimensional array of string, specifies the shortcut values to make available in the startmenu.
    94      # The array has to contain an executable/label pair. The third and fourth element are optional.
    95      #
    96      # Since: v1.17
    97      shortcuts: [["drumroll.exe", "drumroll"]]
    98  
    99      # GOAMD64 to specify which amd64 version to use if there are multiple versions
   100      # from the build section.
   101      #
   102      # Default: 'v1'
   103      goamd64: v3
   104  
   105  {% include-markdown "../includes/repository.md" comments=false %}
   106  ```
   107  
   108  !!! tip
   109  
   110      Learn more about the [name template engine](/customization/templates/).
   111  
   112  By defining the `scoop` section, GoReleaser will take care of publishing the
   113  Scoop app. Assuming that the project name is `drumroll`, and the current tag is
   114  `v1.2.3`, the above configuration will generate a `drumroll.json` manifest in
   115  the root of the repository specified in the `bucket` section.
   116  
   117  ```json
   118  {
   119    "version": "1.2.3",
   120    "architecture": {
   121      "64bit": {
   122        "url": "https://github.com/user/drumroll/releases/download/1.2.3/drumroll_1.2.3_windows_amd64.tar.gz",
   123        "bin": "drumroll.exe",
   124        "hash": "86920b1f04173ee08773136df31305c0dae2c9927248ac259e02aafd92b6008a"
   125      },
   126      "32bit": {
   127        "url": "https://github.com/user/drumroll/releases/download/1.2.3/drumroll_1.2.3_windows_386.tar.gz",
   128        "bin": "drumroll.exe",
   129        "hash": "283faa524ef41987e51c8786c61bb56658a489f63512b32139d222b3ee1d18e6"
   130      }
   131    },
   132    "homepage": "https://example.com/"
   133  }
   134  ```
   135  
   136  Your users can then install your app by doing:
   137  
   138  ```sh
   139  scoop bucket add org https://github.com/org/repo.git
   140  scoop install org/drumroll
   141  ```
   142  
   143  You can check the
   144  [Scoop documentation](https://github.com/lukesampson/scoop/wiki) for more
   145  details.
   146  
   147  {% include-markdown "../includes/prs.md" comments=false %}