module.exports = {
branches: [
{ name: "main" },
{ name: "dev", prerelease: "dev" },
],
tagFormat: "v${version}",
plugins: [
[
"@semantic-release/commit-analyzer",
{
preset: "conventionalcommits",
},
],
[
"@semantic-release/release-notes-generator",
{
preset: "conventionalcommits",
},
],
[
"@semantic-release/changelog",
{
changelogFile: "CHANGELOG.md",
},
],
[
"@semantic-release/exec",
{
prepareCmd:
"sed -i 's/^version = .*/version = \"${nextRelease.version}\"/' Cargo.toml && " +
"sed -i '/^name = \"tinyredis\"$/{n;s/^version = .*/version = \"${nextRelease.version}\"/}' Cargo.lock",
publishCmd:
process.env.DRAFT_RELEASE !== "true"
? "cargo publish"
: "echo 'Skipping crates.io publish for draft release'",
},
],
[
"@semantic-release/github",
{
draftRelease: process.env.DRAFT_RELEASE === "true",
},
],
[
"@semantic-release/git",
{
assets: ["CHANGELOG.md", "Cargo.toml", "Cargo.lock"],
message:
"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
},
],
],
};