Skip to content

dropseed/changerelease

Use this GitHub Action with your project

Add this Action to an existing workflow or create a new one.

View on Marketplace
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

changerelease

Automatically update your GitHub Releases from CHANGELOG.md.

This tool expects that you follow the Keep a Changelog format.

To use it:

  1. Keep a Changelog
  2. Git tag your versions
  3. Let the changerelease GitHub Action automatically keep your GitHub Releases updated

changerelease screenshot

Use the GitHub Action

name: changerelease
on:
  workflow_dispatch: {}
  push:
    paths: [CHANGELOG.md]
    branches: [master]
    tags: ["*"]

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
    - uses: dropseed/changerelease@v1
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        # optional
        tag_prefix: v
        changelog: CHANGELOG.md

Use the Python package

$ pip install changerelease
$ changerelease sync --repo org/repo --token TOKEN

What if my changelog isn't in Markdown?

For changelogs written in reStructuredText or another syntax besides Markdown, you can run a conversion step before running changerelease. This can be a custom rendering script or something like pandoc to convert your changelog to Markdown. The only real expectation is that your version names are written in h2 headings (## {version_name}).

name: changerelease
on:
  workflow_dispatch: {}
  push:
    paths: [CHANGELOG.md]
    branches: [master]
    tags: ["*"]

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    # Convert to markdown first
    # https://github.com/pandoc/pandoc-action-example
    - uses: docker://pandoc/core:2.14
      with:
        args: "CHANGELOG.rst -f rst -t markdown -o CR_CHANGELOG.md"

    - uses: dropseed/changerelease@v1
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        # optional
        tag_prefix: v
        changelog: CR_CHANGELOG.md
        remote_changelog: false