// eslint-disable-next-line @typescript-eslint/no-var-requires const { readFileSync } = require("fs") const commitTemplate = readFileSync("./releaseNotesTemplates/commit.hbs").toString() const publish_packages = process.env.PUBLISH_PACKAGES?.split(",").map(s => s.trim()).filter(s => s.length > 0) || [] const mainBranch = process.env.MAIN_BRANCH || "main" const pypiPublish = process.env.PYPI_PUBLISH?.toLowerCase() === 'true' || false const pypiToken = process.env.PYPI_TOKEN const updateJira = process.env.UPDATE_JIRA?.toLowerCase() === "true" const jiraReleasePrefix = process.env.JIRA_RELEASE_PREFIX if (updateJira && !jiraReleasePrefix) { // eslint-disable-next-line no-console console.warn("UPDATE_JIRA is true but JIRA_RELEASE_PREFIX is not set; releasePrefix will be undefined.") } module.exports = { branches: [ { name: mainBranch } ], plugins: [ [ "@semantic-release/commit-analyzer", { preset: "eslint", releaseRules: [ { tag: "Fix", release: "patch" }, { tag: "Update", release: "patch" }, { tag: "New", release: "minor" }, { tag: "Breaking", release: "major" }, { tag: "Docs", release: "patch" }, { tag: "Build", release: false }, { tag: "Upgrade", release: "patch" }, { tag: "Chore", release: "patch" } ] } ], [ "@semantic-release/release-notes-generator", { preset: "eslint", writerOpts: { commitPartial: commitTemplate } } ], [ "@semantic-release/changelog", { changelogFile: "CHANGELOG.md" } ], ...publish_packages.map(subpackage => [ "@semantic-release/npm", { pkgRoot: subpackage } ]), ...(pypiPublish ? [ [ "semantic-release-pypi", { repoToken: pypiToken } ] ] : []), [ "@semantic-release/github", { assets: [ { path: "CHANGELOG.md", label: "CHANGELOG.md" }, ...(process.env.EXTRA_ASSET ? [ { path: process.env.EXTRA_ASSET, label: process.env.EXTRA_ASSET } ] : []) ], successComment: false, failComment: false, failTitle: false } ], ...(updateJira ? [ [ "./packages/semantic_release_jira/index.cjs", { releasePrefix: jiraReleasePrefix } ] ] : []) ] }