GitHub actions to facilitate Shabad OS release process guidelines.
- Setup Git Identity: sets up the Git user name and email address.
- Semantic Version Bump: figures out and bumps version based on commit history, supporting a sensible prerelease scheme.
- Generate Changelog: generates and commits the latest
CHANGELOG.md
based on conventional commits. - Integrate Commits: integrates commits made by CI into the main branch by pushing and building them to an integration branch and merging when the checks go green.
- Publish Branch: releases the current working directory as a release branch.
- Publish Docker: Builds and publishes the supplied context to DockerHub and GitHub packages.
- Publish npm: Publishes the current working directory to npm and GitHub packages.
- Publish Github: Creates a GitHub release, and uploads any supplied assets to the release.
- Wait for Green: Waits until the status checks for a given ref have passed.
Actions are all stored in subfolders, and released through branches. You can pin down the version, if desired.
Version examples:
release/next
- prereleasesrelease/v2.0.0-next.2
- exactly 2.0.0-next.2release/latest
- latest stablerelease/v1
- all 1.x.xrelease/v1.1
- all 1.1.xrelease/v1.1.1
- exactly 1.1.1
An action can be referenced as per the example below:
# example-workflow.yml
name: Continuous Integration
on: [push]
jobs:
bump-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: shabados/actions/bump-version@release/v1