๐ง๐ Project discontinued
Problem I want to solve
I want to make sure all the commits in a PR follow custom conventions based on the Conventional Commits specification. The conventions should be per repository. Let's consider fix, minor _and _major as a reference.
On the other hand, as I have been playing with NUKE lately, I want to create a solution based on it.
info
NUKE is a build automation framework where you define operations as build, test or push NuGets, in a C# project. I found good reviews and some videos in Channel9 about it. So, for instance, dotnet commands are predefined methods, and its arguments are extension methods, check the next example:
How a NUKE project looks like?
Target Pack => _ => _
.DependsOn(Clean)
.Executes(() =>
{
DotNetTasks
.DotNetPack(s => s
.SetProject(project.Path)
.SetOutputDirectory(outputFolderAbsolutePath)
.SetConfiguration(configuration)
.SetVersionPrefix(currentPackageVersion)
.SetVersionSuffix(versionSuffix)
.EnableNoRestore());
});
Goals
- Validate the commits from a open PR.
- The Solution should be based on NUKE.
- Any repository should be able to use it.
Approach
cangulo.nuke.prcommitsvalidations will execute the following operations sequentially:
- Get the commit list using the GH API Client provided by NUKE
- Validate they follow the conventions defined in the repo.
Remarks
- I'm not saying NUKE is the best solution, I just want to give it a try ๐. In the future, I will create another solution based on scripts.
- The conventions are defined in a json file, you can extend the next example:
{
"conventionalCommitTypes": [
"fix",
"minor",
"major"
]
}
How to use it?
Please check the examples given here.
Where do I use it?
I call this solution through a specific GH Action in the next projects:
- cangulo-nugets/cangulo.changelog
- cangulo-nugets/cangulo.common.testing
- cangulo-nuke/cangulo.nuke.prcommitsvalidations
- cangulo-actions/cangulo.nuke.prcommitsvalidations
- cangulo-tf/basic-iac
Repository
cangulo.nuke.prcommitsvalidations repository
GitHub Action
github action to execute in ANY repository
About me
I'm a Software Engineer with experience as Developer and DevOps. The technologies I have worked with are DotNet, Terraform and AWS. For the last one, I have the Developer Associate certification. I define myself as a challenge-seeker person and team player. I simply give it all to deliver high-quality solutions. On the other hand, I like to analyze and improve processes, promote productivity and document implementations (yes, I'm a developer that likes to document ๐งโ๐ป).
You can check my experience here.
Personal Blog - cangulo.github.io
GitHub - Carlos Angulo Mascarell - cangulo
LinkedIn - Carlos Angulo Mascarell
Twitter - @AnguloMascarell