DEV Community

Cover image for Simplify Your Release Process with the 'release-please' GitHub Action
Archin modi
Archin modi

Posted on

Simplify Your Release Process with the 'release-please' GitHub Action

Introduction

Managing releases in a software project can be a time-consuming and error-prone task. However, GitHub Actions provides a powerful tool called 'release-please' that automates the release process, making it easier and more efficient. In this blog post, we'll explore how to set up and use the 'release-please' GitHub Action, discuss commit formatting best practices, and dive deeper into its benefits.

Setting up 'release-please'

To get started with the 'release-please' GitHub Action, follow these simple steps:

  • Navigate to your GitHub repository and go to the "Actions" tab.
  • Click on the "Set up a workflow yourself" button.
  • Replace the default YAML content with the following:


name: Release Workflow

on:
  push:
    branches:
      - 'main'

jobs:
  release-job:
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Release with release-please
        uses: google-github-actions/release-please-action@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}



Enter fullscreen mode Exit fullscreen mode
  • Save the workflow file with an appropriate name, such as "release.yml".

That's it! You've successfully set up the 'release-please' GitHub Action in your repository. Now, let's delve into commit formatting best practices to fully leverage this automation tool.

Commit Formatting

The 'release-please' action utilizes commit messages to determine the release version and generate release notes. By following proper commit formatting, you can unleash the full potential of this automation. Here's an example of a well-formatted commit message:



feat: Add new feature XYZ


Enter fullscreen mode Exit fullscreen mode

The commit message consists of a type and a description. The type can be one of the following:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation changes
  • style: Code style changes (e.g., formatting, indentation)
  • refactor: Code refactoring
  • test: Add or modify tests
  • chore: General chores or maintenance tasks

The description should be concise and descriptive, explaining the purpose of the commit. For example, "Add new feature XYZ" in the above commit message.

I personally recommanded to use commitizen

Image description

Benefits of 'release-please'

By using the 'release-please' GitHub Action, you can enjoy the following benefits:

- Automated Release Versioning:
'release-please' automatically analyzes your commit history and generates accurate release versions based on semantic versioning rules. It takes the hassle out of manually tracking and incrementing version numbers, ensuring consistency and accuracy.

- Release Notes Generation:
Writing release notes can be a tedious and error-prone task. With 'release-please', the action generates release notes by extracting relevant information from commit messages. This saves you time and effort in manually creating release notes, allowing you to focus more on coding.

- Continuous Integration:
By setting up the 'release-please' GitHub Action, every push to the 'main' branch triggers the release process. This ensures a streamlined and continuous integration approach, making it easier to keep track of new features, bug fixes, and other changes. It fosters collaboration and allows for seamless coordination within your development team.

- Customization and Configuration:
'release-please' provides configuration options to tailor the release process to your specific needs. You can specify the release type (e.g., major, minor, patch), exclude certain commit types, and more. This flexibility empowers you to customize the release workflow according to your project's requirements.

Conclusion

The 'release-please' GitHub Action simplifies the release process by automating versioning and release notes generation. By following the recommended commit formatting practices, you can maximize the benefits of this action. With 'release-please', you'll experience smoother releases, reduced manual effort, and improved collaboration within your software project.

Embrace the power of automation, streamline your release process, and focus more on creating exceptional software. Give 'release-please' a try today and witness the efficiency and ease it brings to your development workflow!

Top comments (3)

Collapse
 
pratyush_singh_8b24d6b65c profile image
Pratyush Singh

Very informative

Collapse
 
iqra_luqman profile image
Iqra Luqman

Hi, Very helpful article. I am just wondering that after the release -please PR will be created. We still need to merge it manually. Can we automate the merging process of release-please PR?

Collapse
 
archinmodi profile image
Archin modi

Sure šŸ˜ƒ