diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..3e1ac2a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Release + +on: + push: + branches: + - master + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: google-github-actions/release-please-action@v3 + id: release + with: + token: ${{ secrets.BOT_TOKEN }} + release-type: node + package-name: 'ml-array-utils' + bump-minor-pre-major: true + - uses: actions/checkout@v4 + # These if statements ensure that a publication only occurs when a new release is created + if: ${{ steps.release.outputs.release_created }} + with: + fetch-depth: 0 + token: ${{ secrets.BOT_TOKEN }} + - uses: actions/setup-node@v4 + if: ${{ steps.release.outputs.release_created }} + with: + node-version: 20.x + registry-url: 'https://registry.npmjs.org' + - name: Run Lerna publish + if: ${{ steps.release.outputs.release_created }} + run: | + git config --global user.name "mljs-bot" + git config --global user.email "72700744+mljs-bot@users.noreply.github.com" + npm install + npm run publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_BOT_TOKEN }} diff --git a/lerna.json b/lerna.json index 3a98548..be3621b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,11 +1,7 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", "conventionalCommits": true, - "packages": ["packages/*"], - "command": { - "bootstrap": { - "npmClientArgs": ["--no-package-lock"] - } - }, - "version": "independent" + "changelogPreset": "conventionalcommits", + "version": "independent", + "packages": ["packages/*"] } diff --git a/package.json b/package.json index 146a35d..174dd2c 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "install-clean": "rimraf node_modules packages/*/node_modules", "prettier": "prettier --check .", "prettier-write": "prettier --write .", - "publish": "npm run test && npm run build && npm run test && lerna publish -y --no-verify-access", + "publish": "npm run test && npm run build && lerna publish -y --no-verify-access", "test": "npm run test-only && tsc --noEmit && npm run eslint && npm run prettier", "test-only": "vitest --run --coverage", "tsc": "tsc --build", @@ -28,6 +28,7 @@ "@types/node": "^25.6.0", "@vitest/coverage-v8": "^4.1.4", "@zakodium/tsconfig": "^1.0.5", + "conventional-changelog-conventionalcommits": "^9.3.1", "eslint": "^9.39.4", "eslint-config-cheminfo-typescript": "^21.2.0", "lerna": "^9.0.5",