agilecustoms/release uses npm library "semantic-release" in dryRun mode — just to generate next version and release notes.
Only two semantic-release plugins are used:
commit-analyzer and release-notes-generator
so they take configuration as per semantic-release documentation to an extent that dryRun mode supports.
If you attempt to specify other plugins — they will be ignored, and you'll see a warning in logs.
For all "modify" operations (publish artifacts, git commit, GitHub release, etc.) agilecustoms/release uses its own implementation
semantic-release takes configuration from configuration file
(such as .releaserc.json) in the root of repository OR via shareable configurations.
I (Alex C) checked four most popular shareable configurations:
each of them provides a combination of plugins to release for a particular platform.
Since agilecustoms/release uses only two plugins (and only in dryRun mode) - there's no much value in support of shareable configurations.
So shareable configurations are NOT SUPPORTED.
In addition to a semantic-release configuration file, agilecustoms/release takes configuration via inputs.
Inputs take precedence over a configuration file
As an alternative form of configuration reuse (instead of sharable configurations) it is recommended to create your company-specific GH action wrapper and put common configuration as default inputs in that wrapper! See example
Bottom line, these are only supported configuration options for semantic-release:
| config file section | GH action input | purpose |
|---|---|---|
branches (details) |
release-branches |
mainly for maintenance releases and prereleases |
plugins |
release-plugins |
mainly for conventional commits |
tagFormat (details) |
tag-format |
git tag format (v1.2.3, 1.2.3, release-1.2.3), version itself is always bare 1.2.3 |
branches > .. > channel |
release-channel |
mainly for floating tags |