Renovate #81
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Renovate | |
| on: | |
| # Run daily at 6 AM UTC | |
| schedule: | |
| - cron: "0 6 * * *" | |
| # Allow manual triggering | |
| workflow_dispatch: | |
| inputs: | |
| logLevel: | |
| description: "Renovate log level" | |
| required: false | |
| default: "info" | |
| type: choice | |
| options: | |
| - info | |
| - debug | |
| - trace | |
| # Ensure only one Renovate workflow runs at a time | |
| concurrency: | |
| group: renovate | |
| cancel-in-progress: false | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| issues: write | |
| actions: write | |
| statuses: write | |
| jobs: | |
| renovate: | |
| name: Renovate Dependencies | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Run Renovate | |
| uses: renovatebot/github-action@v44.0.4 | |
| with: | |
| configurationFile: renovate.json | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| env: | |
| # Set log level from manual input or default to info | |
| LOG_LEVEL: ${{ github.event.inputs.logLevel || 'info' }} | |
| # Enable renovate to create PRs and issues | |
| RENOVATE_REPOSITORIES: ${{ github.repository }} | |
| # Re-trigger CI for Renovate PRs since github-actions[bot] PRs don't trigger pull_request events | |
| - name: Trigger CI for Renovate PRs | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const { data: pulls } = await github.rest.pulls.list({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| state: 'open' | |
| }); | |
| const renovatePRs = pulls.filter(pr => | |
| pr.user.login === 'github-actions[bot]' && | |
| pr.head.ref.startsWith('renovate/') | |
| ); | |
| console.log(`Found ${renovatePRs.length} Renovate PRs to trigger CI for`); | |
| for (const pr of renovatePRs) { | |
| console.log(`Adding empty commit to PR #${pr.number} to trigger CI`); | |
| // Create a repository dispatch event to trigger workflows | |
| try { | |
| await github.rest.repos.createDispatchEvent({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| event_type: 'renovate-ci', | |
| client_payload: { | |
| pr_number: pr.number, | |
| head_sha: pr.head.sha, | |
| head_ref: pr.head.ref | |
| } | |
| }); | |
| console.log(`Dispatched CI trigger for PR #${pr.number}`); | |
| } catch (error) { | |
| console.log(`Failed to dispatch for PR #${pr.number}: ${error.message}`); | |
| } | |
| } |