release-please-manifest.yml
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.json configuration 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.json manifest 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
path_tag_names
A JSON object of key-value pairs, where the key is a path that had a release created, and the value is the tag name that was created for that release.