release-please-manifest.json
A reusable workflow that runs manifest-driven Release Please. Requires more initial setup than the basic Release Please workflow, but supports advanced configuration and monorepos.
Key Features
- Advanced configuration using a
release-please-config.jsonconfiguration file. - Monorepo support: package version tracking using a
.release-please-manifest.jsonmanifest file.
Prerequisites
Configure Release Please
- Add a
release-please-config.jsonconfiguration file at the root of your repository, and define your packages. Optionally, define a root package"."that combines all packages in your repository. For example:
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"release-type": "python",
"packages": {
"packages/example-package": {
"package-name": "example-package"
},
".": {
"package-name": "root-package",
"include-component-in-tag": false
}
}
}
- Add a
.release-please-manifest.jsonmanifest file at the root of your repository, and add an initial empty JSON object:
{}
For detailed instructions on configuring Release Please, please refer to the official documentation.
Configure GitHub repository
(Optional) Configure commitlint
Use the commitlint workflow to lint PR titles, ensuring that they follow the Conventional Commits specification.
Usage
Add a GitHub Actions workflow file .github/workflows/release.yml in your repository, and add the following recommended configuration:
name: Release
on:
push:
branches: [main]
permissions: {}
jobs:
release:
name: Release
uses: equinor/ops-actions/.github/workflows/release-please-manifest.yml@main
permissions:
contents: write
pull-requests: write
On push to branch main, this workflow will automatically create release PRs based on your commit messages.
Inputs
(Optional) runs_on
The label of the runner (GitHub- or self-hosted) to run this workflow on. Defaults to ubuntu-24.04.
Outputs
release_created
true if any release was created, else false.
paths_released
A JSON array of paths that had releases created, [] if nothing was released. Use the fromJSON function to convert this value to an array that can be used to define a matrix strategy job