github.com/szyn/goreleaser@v0.76.1-0.20180517112710-333da09a1297/www/content/release.md (about)

     1  ---
     2  title: Release
     3  series: customization
     4  hideFromIndex: true
     5  weight: 110
     6  ---
     7  
     8  GoReleaser will create a GitHub release with the current tag, upload all
     9  the artifacts and generate the changelog based on the new commits since the
    10  previous tag.
    11  
    12  Let's see what can be customized in the `release` section:
    13  
    14  ```yml
    15  # .goreleaser.yml
    16  release:
    17    # Repo in which the release will be created.
    18    # Default is extracted from the origin remote URL.
    19    github:
    20      owner: user
    21      name: repo
    22  
    23    # If set to true, will not auto-publish the release.
    24    # Default is false.
    25    draft: true
    26  
    27    # If set to true, will mark the release as not ready for production.
    28    # Default is false.
    29    prerelease: true
    30  
    31    # You can change the name of the GitHub release.
    32    # This is parsed with the Go template engine and the following variables
    33    # are available:
    34    # - ProjectName
    35    # - Tag
    36    # - Version (Git tag without `v` prefix)
    37    # There is also a template function "time" that takes a Go time format
    38    # string to insert a formated timestamp into the release name.
    39    # Default is ``
    40    name_template: "{{.ProjectName}}-v{{.Version}}"
    41  
    42    # You can disable this pipe in order to not upload any artifacts to
    43    # GitHub.
    44    # Defaults to false.
    45    disable: true
    46  ```
    47  
    48  ## Customize the changelog
    49  
    50  You can customize how the changelog is generated using the
    51  `changelog` section in the config file:
    52  
    53  ```yaml
    54  # .goreleaser.yml
    55  changelog:
    56    filters:
    57      # commit messages matching the regexp listed here will be removed from
    58      # the changelog
    59      # Default is empty
    60      exclude:
    61        - '^docs:'
    62        - typo
    63        - (?i)foo
    64      # could either be asc, desc or empty
    65      # Default is empty
    66      sort: asc
    67  ```
    68  
    69  ## Custom release notes
    70  
    71  You can specify a file containing your custom release notes, and
    72  pass it with the `--release-notes=FILE` flag.
    73  GoReleaser will then skip its own release notes generation,
    74  using the contents of your file instead.
    75  You can use Markdown to format the contents of your file.
    76  
    77  On Unix systems you can also generate the release notes in-line by using
    78  [process substitution](https://en.wikipedia.org/wiki/Process_substitution).
    79  To list all commits since the last tag, but skip ones starting with `Merge` or
    80  `docs`, you could run this command:
    81  
    82  ```console
    83  $ goreleaser --release-notes <(some_changelog_generator)
    84  ```
    85  
    86  Some changelog generators you can use:
    87  
    88  * [buchanae/github-release-notes](https://github.com/buchanae/github-release-notes)