Skip to content

Commit

Permalink
ci: add workflow for running renovate
Browse files Browse the repository at this point in the history
  • Loading branch information
stempler committed Mar 23, 2024
1 parent cef650d commit 59cc04b
Show file tree
Hide file tree
Showing 2 changed files with 135 additions and 0 deletions.
73 changes: 73 additions & 0 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
extends: [ // default presets see https://docs.renovatebot.com/presets-default/
"config:recommended",
"helpers:pinGitHubActionDigestsToSemver",
"security:openssf-scorecard",
":disableDependencyDashboard",
":disableRateLimiting",
"group:allNonMajor",
":enableVulnerabilityAlertsWithLabel(security)",
],
labels: [
"renovate",
"renovate/{{updateType}}",
],
lockFileMaintenance: {
enabled: true,
schedule: ["before 6am on Sunday"],
},
packageRules: [
{
description: "Ignore frequent renovate updates",
enabled: false,
matchPackageNames: ["renovatebot/github-action"],
matchUpdateTypes: ["patch"],
},
{
description: "Update renovatebot/github-action minor updates on Sundays",
matchPackageNames: ["renovatebot/github-action"],
matchUpdateTypes: ["minor"],
schedule: ["* * * * 0"],
},
],
prBodyTemplate: "{{{table}}}{{{notes}}}{{{changelogs}}}",
customManagers: [
{
description: "Update semantic-release in GitHub Action workflows",
customType: "regex",
fileMatch: ["^\\.github\\/(actions|workflows)\\/.+\\.ya?ml$"],
matchStrings: [
"\
semantic_version\\s*:\\s*(\"|')?(?<currentValue>.+)(\"|')?\
(\\s+|\\s+.*)"
],
datasourceTemplate: "npm",
depNameTemplate: "semantic-release"
},
{
description: "Any other file with dependencies",
customType: "regex",
fileMatch: [
"(^workflow-templates|\\.github/workflows)/[^/]+\\.ya?ml$",
],
matchStrings: [
"\
.*renovate:\
\\sdatasource=(?<datasource>.*?)\
\\sdepName=(?<depName>.*?)\
(\\sversioning=(?<versioning>.*?))?\
\n.*(version|Version|VERSION)\\s*(:=|=|:)\\s*\"?(?<currentValue>.*?)\
(@(?<currentDigest>sha256:[a-f0-9]+))?\"?\
(\\s+|\\s+.*)"
],
versioningTemplate: "\
{{#if versioning}}\
{{{versioning}}}\
{{else}}\
semver-coerced\
{{/if}}"
}
],
separateMinorPatch: true,
}
62 changes: 62 additions & 0 deletions .github/workflows/workflows-renovate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: renovate

on:
workflow_dispatch:
inputs:
dryRun:
type: boolean
description: "Dry-Run"
logLevel:
type: choice
description: "Log-Level"
default: debug
options:
- info
- debug
- trace
push:
branches:
- master
- "!renovate/*"
schedule:
- cron: "0 0,2,4 * * 0"

env:
# https://docs.renovatebot.com/troubleshooting/#log-debug-levels
LOG_LEVEL: "${{ inputs.logLevel || 'debug' }}"
# https://docs.renovatebot.com/self-hosted-configuration/#repositories
RENOVATE_REPOSITORIES: ${{ github.repository }}
# https://docs.renovatebot.com/self-hosted-configuration/#username
RENOVATE_USERNAME: ${{ github.repository_owner }}
# https://docs.renovatebot.com/configuration-options/#platformcommit
RENOVATE_PLATFORM_COMMIT: "true"
# https://docs.renovatebot.com/self-hosted-configuration/#dryrun
# Run renovate in dry-run mode if executed in branches other than master - prevents versions in PRs/branches from being updated
RENOVATE_DRY_RUN: "${{ inputs.dryRun || ( github.head_ref || github.ref_name ) != 'master' || false }}"
# Renovate Automerge
# RENOVATE_AUTOMERGE_TYPE: "branch"
# RENOVATE_AUTOMERGE: "true"

permissions: read-all

jobs:
renovate:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- uses: actions/create-github-app-token@f2acddfb5195534d487896a656232b016a682f3c # v1.9.0
id: app-token
with:
# see https://github.com/renovatebot/renovate/blob/47c8501c412c2f53f61ca292a5039f5939c32c5d/lib/modules/platform/github/readme.md?plain=1#L28
app-id: ${{ secrets.WE_RENOVATE_GITHUB_APP_ID }}
private-key: "${{ secrets.WE_RENOVATE_GITHUB_PRIVATE_KEY }}"

- name: 💡 Self-hosted Renovate
uses: renovatebot/github-action@2d90417499f45ff78a09586f7b9874b19817dba3 # v40.1.0
with:
token: "${{ steps.app-token.outputs.token }}"

0 comments on commit 59cc04b

Please sign in to comment.