diff --git a/.github/workflows/publish-sdk.yaml b/.github/workflows/publish-sdk.yaml index ee3d0bfdf..957eca52b 100644 --- a/.github/workflows/publish-sdk.yaml +++ b/.github/workflows/publish-sdk.yaml @@ -128,7 +128,7 @@ jobs: ./scripts/update-version.sh @sentio/action ${{ steps.semantic.outputs.new_release_version }} pnpm publish --filter "@sentio/action" --no-git-checks --tag ${{ steps.npm.outputs.dist_tag }} - name: Clean Github Release for RC - if: ${{ contains(steps.semantic.outputs.new_release_version, '-') == false }} + if: ${{ steps.semantic.outputs.new_release_published == 'true' && contains(steps.semantic.outputs.new_release_version, '-') == false }} run: ./scripts/clean-rc-releases.sh env: GH_TOKEN: ${{ secrets.ACCESS_TOKEN }} diff --git a/packages/action/release.config.cjs b/packages/action/release.config.cjs index 845636e51..6ff299ffb 100644 --- a/packages/action/release.config.cjs +++ b/packages/action/release.config.cjs @@ -5,11 +5,14 @@ module.exports = { [ '@semantic-release/commit-analyzer', { - preset: 'angular', + preset: 'conventionalcommits', releaseRules: [ { type: 'release', "scope": 'major', release: 'major' }, { type: 'release', "scope": 'minor', release: 'minor' }, { type: 'release', "scope": 'patch', release: 'patch' }, + // '!'/BREAKING CHANGE markers are capped at minor: major releases are + // only ever cut explicitly via a release(major) commit. + { breaking: true, release: 'minor' }, { type: 'chore', release: 'patch' }, { type: 'refactor', release: 'patch' }, ], diff --git a/packages/cli/release.config.cjs b/packages/cli/release.config.cjs index 845636e51..6ff299ffb 100644 --- a/packages/cli/release.config.cjs +++ b/packages/cli/release.config.cjs @@ -5,11 +5,14 @@ module.exports = { [ '@semantic-release/commit-analyzer', { - preset: 'angular', + preset: 'conventionalcommits', releaseRules: [ { type: 'release', "scope": 'major', release: 'major' }, { type: 'release', "scope": 'minor', release: 'minor' }, { type: 'release', "scope": 'patch', release: 'patch' }, + // '!'/BREAKING CHANGE markers are capped at minor: major releases are + // only ever cut explicitly via a release(major) commit. + { breaking: true, release: 'minor' }, { type: 'chore', release: 'patch' }, { type: 'refactor', release: 'patch' }, ], diff --git a/release.config.js b/release.config.js index 32128f525..597969f6e 100644 --- a/release.config.js +++ b/release.config.js @@ -5,11 +5,14 @@ export default { [ '@semantic-release/commit-analyzer', { - preset: 'angular', + preset: 'conventionalcommits', releaseRules: [ { type: 'release', "scope": 'major', release: 'major' }, { type: 'release', "scope": 'minor', release: 'minor' }, { type: 'release', "scope": 'patch', release: 'patch' }, + // '!'/BREAKING CHANGE markers are capped at minor: major releases are + // only ever cut explicitly via a release(major) commit. + { breaking: true, release: 'minor' }, { type: 'chore', release: 'patch' }, { type: 'refactor', release: 'patch' }, ], diff --git a/scripts/clean-rc-releases.sh b/scripts/clean-rc-releases.sh index 4749cc821..6b75b44b5 100755 --- a/scripts/clean-rc-releases.sh +++ b/scripts/clean-rc-releases.sh @@ -1 +1,7 @@ -gh release list | grep Pre-release | awk '{print $1;}' | xargs -L1 gh release delete +#!/bin/bash +set -euo pipefail + +# Delete pre-release GitHub releases (keeps their git tags, which semantic-release relies on). +gh release list --limit 1000 --json tagName,isPrerelease \ + --jq '.[] | select(.isPrerelease) | .tagName' | + xargs -r -L1 gh release delete --yes