This project uses Semantic Release to automate versioning and package publishing.
We follow the Conventional Commits specification for all pull requests and commits. This allows us to automatically:
- Determine the next version number (patch, minor, or major).
- Generate a
CHANGELOG.mdfile. - Publish GitHub releases.
Each commit message should consist of a header, a body, and a footer. The header has a special format that includes a type, a scope, and a subject:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
feat: A new feature (triggers a minor release).fix: A bug fix (triggers a patch release).docs: Documentation only changes.style: Changes that do not affect the meaning of the code.refactor: A code change that neither fixes a bug nor adds a feature.perf: A code change that improves performance.test: Adding missing tests or correcting existing tests.chore: Changes to the build process or auxiliary tools and libraries.
A breaking change must be indicated by a ! after the type/scope or by adding BREAKING CHANGE: in the footer. This triggers a major release.
Example:
feat!: overhaul the secret store configuration
When a commit is pushed to the main or master branch, a GitHub Action is triggered that utilizes reusable workflows from AutomationDojo/reusable-cicd.
The release pipeline will:
- Analyze the commits using Conventional Commits.
- Update the
versioninChart.yaml(viasemantic-release-helm). - Generate/update the chart
CHANGELOG.mdand the rootCHANGELOG.md. - Commit those changes back to the repository using a dedicated GitHub App identity.
- Create a GitHub Tag and Release.
- Package and publish the Helm chart to the
gh-pagesbranch and to GHCR (via thehelm-releaserreusable workflow). - Rebuild and publish the MkDocs documentation into
gh-pages/docs(via thehelm-docs-publishreusable workflow) whenever a new release is created.
To list this chart on Artifact Hub:
- Hosting: The chart is automatically packaged and hosted on the
gh-pagesbranch of this repository by theRelease Chartsworkflow. - Registration:
- Go to Artifact Hub and log in.
- Click Control Panel > Add Repository.
- Kind: Helm charts.
- Name:
bitwarden-password-manager-eso. - URL:
https://user-cube.github.io/bitwarden-password-manager-eso/.
- Metadata: Branding, maintainer info, and categories are managed via the
artifacthub-pkg.ymlfile in the root of the repository.
Artifact Hub will automatically pick up changes from the artifacthub.io/changes annotation in artifacthub-pkg.yml.
To function correctly, the repository must have the following secrets configured (used by the reusable workflow):
DEVOPS_BUDDY_APP_ID: The ID of the GitHub App used for automation.DEVOPS_BUDDY_PRIVATE_KEY: The private key of the GitHub App.