Skip to content

Renovate

Renovate #81

Workflow file for this run

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}`);
}
}