diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e78ad00..d1634cc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,4 +28,10 @@ jobs: - env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: bunx semantic-release@24 ${{ inputs.dry_run && '--dry-run' || '' }} + ANTHROPIC_API_KEY_RELEASE_NOTES: ${{ secrets.ANTHROPIC_API_KEY_RELEASE_NOTES }} + run: > + npx --yes + --package semantic-release@24 + --package @semantic-release/github@12.0.8 + --package semantic-release-ai-notes@0.3.0 + semantic-release ${{ inputs.dry_run && '--dry-run' || '' }} diff --git a/.releaserc.cjs b/.releaserc.cjs new file mode 100644 index 0000000..40d99f7 --- /dev/null +++ b/.releaserc.cjs @@ -0,0 +1,40 @@ +const releaseNotesApiKey = process.env.ANTHROPIC_API_KEY_RELEASE_NOTES; + +if (releaseNotesApiKey && !process.env.ANTHROPIC_API_KEY) { + process.env.ANTHROPIC_API_KEY = releaseNotesApiKey; +} + +const notesPlugin = releaseNotesApiKey + ? [ + "semantic-release-ai-notes", + { + model: "claude-haiku-4-5", + style: "concise", + maxTurns: 15, + systemPromptAdditions: + "Never use em dashes. Use hyphens, periods, or colons.", + }, + ] + : "@semantic-release/release-notes-generator"; + +module.exports = { + branches: ["main"], + tagFormat: `v\${version}`, + plugins: [ + "@semantic-release/commit-analyzer", + notesPlugin, + [ + "@semantic-release/npm", + { + pkgRoot: "packages/fallbacks", + }, + ], + [ + "@semantic-release/github", + { + successComment: false, + failComment: false, + }, + ], + ], +}; diff --git a/.releaserc.json b/.releaserc.json deleted file mode 100644 index 5480ebe..0000000 --- a/.releaserc.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/semantic-release.json", - "branches": ["main"], - "tagFormat": "v${version}", - "plugins": [ - "@semantic-release/commit-analyzer", - "@semantic-release/release-notes-generator", - [ - "@semantic-release/npm", - { - "pkgRoot": "packages/fallbacks" - } - ] - ] -}