Skip to content

CharlieSu/release_mgmt_example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

release_mgmt_example

This repo is a demonstration of how to wire up automated release management using GitHub Actions.

Tools

Pipelines

GitHub Actions are used to run tests and drive automation. Read through the documentation for more usage information.

Name Description
Release Runs the semantic-release process on merges to main
PR Name Check Enforces PR title conventions on any PR activity.

Configuration

Name Description
.releaserc General semantic-release plugin configuation
semantic.yml Enforces PR title conventions on any PR activity.

Workflow Configuration examples to configure branching rules, releases, channels, version ranges, and more.

Makefile usage

The Makefile has a helper target to prepare a new release branch.

$ make help
create-release-branch          Create release branch on main

Repository Configuration

This repository is modeled after GitFlow - A successful Git branching model. Merging to main triggers the release processes. The dev branch is configured as the default branch. All feature work is merged into the dev branch. Releases are generated by creating a release-* branch using the processed defined in the create-release-branch Makefile target. Release branches generally track dev exactly, but it's possible to cherry-pick changes. The overall process is meant to enable a release engineering function.

It's also worth noting that a Branch Protection Rule is configured on the dev branch which requires the PR Name Check action to succeed. This is done to enforce the proper behavior of the semantic-release tooling.

GitFlow Image

About

Example of automated release management.

Resources

Stars

Watchers

Forks

Packages

No packages published