From f226079b520a59d13bcf2a18dcdd1e4bbefe21f3 Mon Sep 17 00:00:00 2001 From: Reversean Date: Wed, 29 Apr 2026 10:02:49 +0300 Subject: [PATCH 1/3] ci(core): publishing @hawk.so/core to npm --- .github/workflows/npm-publish.yml | 7 +++++-- packages/javascript/package.json | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index f56b2632..c0c0e376 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -9,7 +9,7 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' @@ -18,6 +18,9 @@ jobs: - run: yarn - run: yarn lint-test - run: yarn build:all + - run: yarn workspace @hawk.so/core npm publish --access=public + env: + YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - run: yarn workspace @hawk.so/javascript npm publish --access=public env: YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} @@ -25,7 +28,7 @@ jobs: needs: publish runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Get package info id: package uses: codex-team/action-nodejs-package-info@v1 diff --git a/packages/javascript/package.json b/packages/javascript/package.json index c3e0d130..c5ac0110 100644 --- a/packages/javascript/package.json +++ b/packages/javascript/package.json @@ -40,10 +40,10 @@ }, "homepage": "https://github.com/codex-team/hawk.javascript#readme", "dependencies": { + "@hawk.so/core": "workspace:^", "error-stack-parser": "^2.1.4" }, "devDependencies": { - "@hawk.so/core": "workspace:^", "@hawk.so/types": "0.5.8", "@vitest/coverage-v8": "^4.0.18", "jsdom": "^28.0.0", From ec27a3f95c869055ee0701297e7a4e9a26ee98e8 Mon Sep 17 00:00:00 2001 From: Reversean Date: Thu, 30 Apr 2026 22:37:18 +0300 Subject: [PATCH 2/3] ci: auto-bump package version workflow added Added CI workflows that check if versions of packages core and javascript should be bumped. Bump level depends on commit message: - major - '!' after type or body contains 'BREAKING CHANGES' string - minor - commit of type 'feat' - patch - otherwise --- .github/workflows/bump-package.yml | 88 ++++++++++++++++++++++++++++++ .github/workflows/bump-version.yml | 16 ++++++ 2 files changed, 104 insertions(+) create mode 100644 .github/workflows/bump-package.yml create mode 100644 .github/workflows/bump-version.yml diff --git a/.github/workflows/bump-package.yml b/.github/workflows/bump-package.yml new file mode 100644 index 00000000..d022256a --- /dev/null +++ b/.github/workflows/bump-package.yml @@ -0,0 +1,88 @@ +name: Bump package version + +on: + workflow_call: + inputs: + workspace: + required: true + type: string + description: 'Yarn workspace name' + path: + required: true + type: string + description: 'Package directory relative to repo root' + +jobs: + bump: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + + - name: Check if package was modified and version needs bump + id: check + run: | + # Exit cleanly if the package directory was not touched in this PR + if git diff --quiet ${{ github.event.pull_request.base.sha }} HEAD -- ${{ inputs.path }}; then + echo "No changes detected in ${{ inputs.path }}." + echo "should-bump=false" >> $GITHUB_OUTPUT + exit 0 + fi + + # Compare old (base) and new (HEAD) version strings + OLD_VERSION=$(git show ${{ github.event.pull_request.base.sha }}:${{ inputs.path }}/package.json | jq -r '.version') + NEW_VERSION=$(jq -r '.version' ${{ inputs.path }}/package.json) + + if [ "$OLD_VERSION" != "$NEW_VERSION" ]; then + echo "Version already bumped by developer ($OLD_VERSION → $NEW_VERSION)." + echo "should-bump=false" >> $GITHUB_OUTPUT + exit 0 + fi + + echo "should-bump=true" >> $GITHUB_OUTPUT + + - name: Determine bump level from conventional commits + id: level + if: steps.check.outputs.should-bump == 'true' + run: | + # Gather full commit messages (subject + body) only for commits touching this package + COMMITS=$(git log ${{ github.event.pull_request.base.sha }}..HEAD --format=%B -- ${{ inputs.path }}) + + if echo "$COMMITS" | grep -qE '^[a-z]+(\([^)]+\))?!:'; then + LEVEL=major + elif echo "$COMMITS" | grep -qE 'BREAKING[- ]CHANGE'; then + LEVEL=major + elif echo "$COMMITS" | grep -qE '^feat(\([^)]*\))?:'; then + LEVEL=minor + else + LEVEL=patch + fi + + echo "level=$LEVEL" >> $GITHUB_OUTPUT + echo "Bumping ${{ inputs.workspace }} with $LEVEL level" + + - uses: actions/setup-node@v4 + if: steps.check.outputs.should-bump == 'true' + with: + node-version-file: '.nvmrc' + + - run: corepack enable + if: steps.check.outputs.should-bump == 'true' + + - run: yarn + if: steps.check.outputs.should-bump == 'true' + + - name: Bump ${{ inputs.workspace }} version + if: steps.check.outputs.should-bump == 'true' + run: yarn workspace ${{ inputs.workspace }} version ${{ steps.level.outputs.level }} + + - uses: EndBug/add-and-commit@v9 + if: steps.check.outputs.should-bump == 'true' + with: + author_name: github-actions + author_email: 41898282+github-actions[bot]@users.noreply.github.com + message: 'chore: bump ${{ inputs.workspace }} version' + pull: '--rebase --autostash' diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml new file mode 100644 index 00000000..ee69a580 --- /dev/null +++ b/.github/workflows/bump-version.yml @@ -0,0 +1,16 @@ +name: Bump version in PR + +on: [pull_request] + +jobs: + bump-version-core: + uses: ./.github/workflows/bump-package.yml + with: + workspace: '@hawk.so/core' + path: packages/core + + bump-version-javascript: + uses: ./.github/workflows/bump-package.yml + with: + workspace: '@hawk.so/javascript' + path: packages/javascript From 9e26ff2441d50c6e3c4903c9b1ca24a539c6281a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 19:51:02 +0000 Subject: [PATCH 3/3] chore: bump @hawk.so/javascript version --- packages/javascript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/javascript/package.json b/packages/javascript/package.json index c5ac0110..5898499b 100644 --- a/packages/javascript/package.json +++ b/packages/javascript/package.json @@ -1,6 +1,6 @@ { "name": "@hawk.so/javascript", - "version": "3.2.22", + "version": "3.2.23", "description": "JavaScript errors tracking for Hawk.so", "files": [ "dist"