Skip to content

inigomarquinez/howto-release-please

Repository files navigation

🤔 HOW TO - Release please

POC to use Google's release-please github action to create releases.

📝 Instructions

Prerequisites

  1. It is highly recommended that you use squash-merges when merging pull requests.

    • Read this if you want to know why.
    • Read this if you want to know how to do it. Squash and merge Squash and merge in GitHub
  2. release-please requires a GitHub token to access the GitHub API.

    You can create your own token with at least Read and Write access to code and pull requests.

    But you can also use the built-in GITHUB_TOKEN secret and configure your repository to allow GitHub actions to create and approve pull requests. Read this to know how to do it.

    Workflow permissions Allow GitHub actions to create and approve pull requests
  3. Commits must follow the Conventional Commits convention. You can enforce this by using tools such as commitlint and husky.

    But apart from the commits, what is really important is that the pull request title follows the convention. This is because release-please uses the pull request title to determine the release type. You can use this GitHub action to ensure it. You can find an example in this same repository. Take a look at the ./.github/workflows/lint-pull-request.yml file.

    Invalid pull request Invalid pull request title format Valid pull request Valid pull request title format

Steps

  1. Follow the steps described in the official documentation of the release-please action.

  2. Remember that you can customize the GitHub action by using different configuration parameters.

    The most important ones are token, release-type and package-name.

Take into account

  • By default the PR doesn't include all the suported commit types, only the most important ones such as feat or fix.

    If you want to customize this, you can use the changelog-types input parameter as described here.

  • Release Please allows you to represent multiple changes in a single commit using footers, as described here.

🎁 Bonus track - Publish to npm

With a few additions, the Release Please action can be made to publish to npm when a Release PR is merged, as described here.

👀 Example

You can find an example in this same repository. Take a look at the .github/workflows/release-please.yml file.

🔗 Useful links