const config = require('semantic-release-preconfigured-conventional-commits') const verifyReleaseCommands = ` sed -i 's/version.*/version = "\${nextRelease.version}"/g' Cargo.toml || exit 1 git add -A || exit 2 git commit -m "chore: [skip ci] update version in Cargo.toml" || exit 3 cargo publish --dry-run || exit 4 ` const prepareCommands = ` sed -i 's/version.*/version = "\${nextRelease.version}"/g' Cargo.toml || exit 1 git add -A || exit 2 git commit -m "chore: [skip ci] update version in Cargo.toml" || exit 3 git push --force origin || exit 4 ` const publishCommands = ` git tag -a -f \${nextRelease.version} \${nextRelease.version} -F CHANGELOG.md || exit 1 git push --force origin \${nextRelease.version} || exit 2 cargo package || exit 3 cargo publish || exit 4 ` const releaseBranches = ["main"] config.branches = releaseBranches config.plugins.push( ["@semantic-release/exec", { "prepareCmd": prepareCommands, "publishCmd": publishCommands, "verifyReleaseCmd": verifyReleaseCommands, }], ["@semantic-release/github", { "assets": [ { "path": "target/package/*.crate" }, ] }], ["@semantic-release/git", { "assets": ["CHANGELOG.md", "package.json"], "message": "chore(release)!: [skip ci] ${nextRelease.version} released" }], ) module.exports = config