From 631581469eea37c64b833bd5d7119d1860fec0f3 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 31 Oct 2025 09:25:09 -0500 Subject: [PATCH] fix: auto-update dist folder in Renovate PRs via GitHub Actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces non-functional postUpgradeTasks configuration with a GitHub Actions workflow that automatically rebuilds the distribution when Renovate opens PRs. The previous approach used postUpgradeTasks and allowedCommands, which only work with self-hosted Renovate. Since this repo uses GitHub's hosted Renovate app, those settings were ignored, causing the dist folder to not be updated. The new workflow: - Triggers on PRs that modify package.json, package-lock.json, or src/ - Only runs for Renovate bot PRs - Runs npm run all to rebuild dist/ - Commits and pushes changes back to the PR branch This fixes the artifact update warnings in Renovate PRs like #294. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/renovate.json | 21 +-------- .github/workflows/renovate-dist-update.yml | 52 ++++++++++++++++++++++ 2 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/renovate-dist-update.yml diff --git a/.github/renovate.json b/.github/renovate.json index 1c18c5a..75e5065 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,23 +1,4 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["github>jdx/renovate-config"], - "packageRules": [ - { - "matchManagers": ["github-actions"], - "postUpgradeTasks": { - "commands": [], - "fileFilters": [], - "executionMode": "branch" - } - }, - { - "matchManagers": ["npm"], - "postUpgradeTasks": { - "commands": ["npm run all"], - "fileFilters": ["dist/**/*"], - "executionMode": "branch" - } - } - ], - "allowedCommands": ["^npm run all$"] + "extends": ["github>jdx/renovate-config"] } diff --git a/.github/workflows/renovate-dist-update.yml b/.github/workflows/renovate-dist-update.yml new file mode 100644 index 0000000..4325c94 --- /dev/null +++ b/.github/workflows/renovate-dist-update.yml @@ -0,0 +1,52 @@ +name: Update Distribution on Renovate PRs + +on: + pull_request: + paths: + - 'package.json' + - 'package-lock.json' + - 'src/**' + - 'tsconfig.json' + +permissions: + contents: write + pull-requests: write + +jobs: + update-dist: + # Only run for Renovate PRs + if: github.actor == 'renovate[bot]' || github.actor == 'renovate-bot' + runs-on: ubuntu-latest + + steps: + - name: Checkout PR branch + uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Build and package + run: npm run all + + - name: Check for changes + id: git-check + run: | + git diff --exit-code dist/ || echo "changed=true" >> $GITHUB_OUTPUT + + - name: Commit and push changes + if: steps.git-check.outputs.changed == 'true' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add dist/ + git commit -m "chore: rebuild distribution" + git push