diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index c3a57f6..bac1312 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -23,7 +23,7 @@ jobs: - run: make install - run: make compile - - name: Publish to npm + - name: Semantic Release run: npx semantic-release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -31,4 +31,4 @@ jobs: - name: Post-release sync run: ./utils/ci/sync.sh - if: success() && endsWith(github.ref, 'release') + if: success() diff --git a/makefile b/makefile index 15d64d4..3178f9a 100644 --- a/makefile +++ b/makefile @@ -85,10 +85,10 @@ pristine: distclean rm -rf node_modules release/latest: - utils/make/release.sh release + utils/make/release.sh release/latest release/next: - utils/make/release.sh release/next noclean + utils/make/release.sh release/next .PHONY: force diff --git a/release.config.js b/release.config.js index 486a7e0..49a731c 100644 --- a/release.config.js +++ b/release.config.js @@ -4,10 +4,8 @@ module.exports = { // eslint-disable-next-line no-template-curly-in-string tagFormat: '${version}', branches: [ - // TODO: Ideally the default release branch would be release/latest - // but semantic-release refuses to work with a default branch with a slash, apparently 🤷‍♂️ - { name: 'release' }, - { name: 'release/next', channel: 'next', prerelease: 'beta' }, + { name: 'release/latest', channel: 'latest' }, + { name: 'release/next', channel: 'next', prerelease: 'alpha' }, ], plugins: [ diff --git a/utils/ci/sync.sh b/utils/ci/sync.sh index ed0faed..ca28976 100755 --- a/utils/ci/sync.sh +++ b/utils/ci/sync.sh @@ -2,15 +2,17 @@ set -o errexit +head=$(git rev-parse --abbrev-ref HEAD) + printf "\n=====>\tFetching new commits...\n" # Ensure we are merging the release into current branch tips to avoid pushes being rejected git fetch origin -printf "\n=====>\tMerging to master...\n" +printf "\n=====>\tMerging to master: %s...\n" "${head}" git checkout master -git merge release +git merge "${head}" # Print the repo status after merging, for troubleshooting purposes git status @@ -19,6 +21,3 @@ git log --oneline HEAD~10..HEAD printf "\n=====>\tPushing...\n" git push origin master - -printf "\n=====>\tCleaning up...\n" -git push origin :release diff --git a/utils/make/release.sh b/utils/make/release.sh index bb0da37..1f23bd4 100755 --- a/utils/make/release.sh +++ b/utils/make/release.sh @@ -1,16 +1,19 @@ #!/bin/sh branch="$1" -noclean="$2" set -o errexit head=$(git rev-parse --abbrev-ref HEAD) -printf "\n=====>\tCreating release branch: %s...\n" "${branch}" +printf "\n=====>\tChecking out release branch: %s...\n" "${branch}" git checkout -B "${branch}" +printf "\n=====>\tMerging %s...\n" "${head}" + +git merge --message "chore: release" "${head}" + printf "\n=====>\tPushing...\n" git push --set-upstream origin "${branch}" @@ -19,10 +22,4 @@ printf "\n=====>\tSwitching back to previous branch: %s...\n" "${head}" git checkout "${head}" -if [ "${noclean}" != "noclean" ]; then - printf "\n=====>\tDeleting local release branch: %s...\n" "${branch}" - - git branch --delete "${branch}" -fi - printf "\n=====>\tRelease in progress: https://github.com/strvcom/heimdall/actions\n"