From d62720fb116c7b31cb81f41ce6df1e374dc33fd9 Mon Sep 17 00:00:00 2001 From: Dmytro Parzhytskyi Date: Wed, 15 Oct 2025 15:43:03 +0300 Subject: [PATCH 1/3] Automatically publish version updates --- .github/workflows/test-publish.yaml | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-publish.yaml b/.github/workflows/test-publish.yaml index 0a27ee1..f229a76 100644 --- a/.github/workflows/test-publish.yaml +++ b/.github/workflows/test-publish.yaml @@ -4,8 +4,6 @@ on: push: branches: - main - tags: - - 'v*' pull_request: branches: - main @@ -77,14 +75,14 @@ jobs: path: coverage publish: - name: Publish + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + name: Publish on version update needs: - test permissions: contents: read id-token: write runs-on: ubuntu-latest - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v5 @@ -92,10 +90,24 @@ jobs: node-version-file: '/.nvmrc' registry-url: 'https://registry.npmjs.org' - - run: npm ci - - run: npm run build + - name: Check for version update + id: check_version + run: | + CURRENT_VERSION=$(jq -r .version package.json) + PREVIOUS_VERSION=$(git show HEAD~1:package.json | jq -r .version) + + if [[ "$CURRENT_VERSION" != "$PREVIOUS_VERSION" ]]; then + echo "version_updated=true" >> $GITHUB_OUTPUT + fi + + - if: steps.check_version.outputs.version_updated + run: npm ci + + - if: steps.check_version.outputs.version_updated + run: npm run build - - name: Publish + - if: steps.check_version.outputs.version_updated + name: Publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} run: | From 5e45eb67d04bb985c4fcee05ff1cdc38505fe9ab Mon Sep 17 00:00:00 2001 From: Dmytro Parzhytskyi Date: Wed, 15 Oct 2025 15:43:18 +0300 Subject: [PATCH 2/3] Require version updates in `release/*` PRs --- .../check-version-update-on-release.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/check-version-update-on-release.yaml diff --git a/.github/workflows/check-version-update-on-release.yaml b/.github/workflows/check-version-update-on-release.yaml new file mode 100644 index 0000000..9e802b6 --- /dev/null +++ b/.github/workflows/check-version-update-on-release.yaml @@ -0,0 +1,24 @@ +name: Check Version update on release + +on: + pull_request: + branches: + - release/*' + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - run: | + CHANGED_FILES=$(git diff --name-only "origin/${{ github.base_ref }}...HEAD") + + if ! echo "${CHANGED_FILES}" | grep -qx "package.json"; then + echo "::error::Release PRs must include an update to package.json." + exit 1 + fi + + if ! echo "${CHANGED_FILES}" | grep -qx "package-lock.json"; then + echo "::error::Release PRs must include an update to package-lock.json." + exit 1 + fi From 3b4849f200996cdb561cc5f480b4280cadb1aaee Mon Sep 17 00:00:00 2001 From: Dmytro Parzhytskyi Date: Wed, 15 Oct 2025 15:46:43 +0300 Subject: [PATCH 3/3] Fix bugs in release PRs check --- .github/workflows/check-version-update-on-release.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-version-update-on-release.yaml b/.github/workflows/check-version-update-on-release.yaml index 9e802b6..05baf09 100644 --- a/.github/workflows/check-version-update-on-release.yaml +++ b/.github/workflows/check-version-update-on-release.yaml @@ -3,13 +3,16 @@ name: Check Version update on release on: pull_request: branches: - - release/*' + - 'release/*' jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 + with: + fetch-depth: 0 + - run: | CHANGED_FILES=$(git diff --name-only "origin/${{ github.base_ref }}...HEAD")