Conventional Commits plugin for Jenkins

Goal: Automatically determine the next semantic version for a repository

Status: Active

Team

Details

Background

As the CI/CD world is moving more towards automation and minimal human interaction, the ability to full automate a release, including the determination of the "next" release version becomes desirable.

Semantic/Conventional commits is one way of programatically understanding the changes made between releases

For a existing project released at 1.0.0, the following commit messages would bump the version as follows:

Commit Message Next Version

chore: improve logging

1.0.1

fix: minor bug fix

1.0.1

feat: add a new feature

1.1.0

BREAKING CHANGE: reimplement

2.0.0

Project Details

This project idea proposes to implement a Jenkins plugin which will allow the nextVersion to be determined from the commit log.

The project requires the student to start with plugin development from scratch and then work with understanding how to integrate this plugin into a Jenkins pipeline.

In the beginning, the student can work on understanding the Jenkins plugin development by writing code for creating a simple Build Step which determines the current version from the latest tag.

This can be extended in the future to support other methods of determining the version e.g. Chart.yaml / pom.xml / build.gradle or package.json

Office hours

TODO

Getting the Code

The code for Conventional Commits Plugin can be found here on Github. Note: The project is under active development.

References

There are many examples of such documentation on the web:

Links