chore(github): Migrate to renovate GH action (#2520)
chore: Migrate to renovate GH action Signed-off-by: Marco Maurer <mkilchhofer@users.noreply.github.com>pull/2558/head
parent
48824664e9
commit
e0f6a16ce8
|
@ -0,0 +1,7 @@
|
||||||
|
module.exports = {
|
||||||
|
platform: 'github',
|
||||||
|
gitAuthor: 'renovate[bot] <renovate[bot]@users.noreply.github.com>',
|
||||||
|
autodiscover: false,
|
||||||
|
allowPostUpgradeCommandTemplating: true,
|
||||||
|
allowedPostUpgradeCommands: [".*"],
|
||||||
|
};
|
|
@ -1,57 +0,0 @@
|
||||||
## Used on Renovate PRs to bump the chart version and add a changelog entry
|
|
||||||
## Reference: https://github.com/stefanzweifel/git-auto-commit-action
|
|
||||||
## Reference: https://github.com/marketplace/actions/changed-files
|
|
||||||
name: 'Chart Version Bump and Changelog'
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types:
|
|
||||||
- labeled
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
helm-bumper:
|
|
||||||
if: ${{ (contains(github.event.pull_request.labels.*.name, 'renovate')) }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.PAT }}
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Get changed files
|
|
||||||
id: changed-files
|
|
||||||
uses: tj-actions/changed-files@3f54ebb830831fc121d3263c1857cfbdc310cdb9 # v42.0.4
|
|
||||||
with:
|
|
||||||
files: charts/{argo-workflows,argo-cd,argo-events,argo-rollouts,argocd-image-updater}/Chart.yaml
|
|
||||||
|
|
||||||
- name: "Bump Version and Changelog"
|
|
||||||
run: |
|
|
||||||
chartName="$(echo \"${{ steps.changed-files.outputs.all_changed_files }}\" | cut -d '/' -f2)"
|
|
||||||
echo "Changed chart name is: $chartName"
|
|
||||||
echo "----------------------------------------"
|
|
||||||
|
|
||||||
parentDir="charts/${chartName}"
|
|
||||||
|
|
||||||
# Bump the chart version by one patch version
|
|
||||||
version=$(grep '^version:' ${parentDir}/Chart.yaml | awk '{print $2}')
|
|
||||||
major=$(echo $version | cut -d. -f1)
|
|
||||||
minor=$(echo $version | cut -d. -f2)
|
|
||||||
patch=$(echo $version | cut -d. -f3)
|
|
||||||
patch=$(expr $patch + 1)
|
|
||||||
sed -i "s/^version:.*/version: ${major}.${minor}.${patch}/g" ${parentDir}/Chart.yaml
|
|
||||||
|
|
||||||
# Add a changelog entry
|
|
||||||
appVersion=$(grep '^appVersion:' ${parentDir}/Chart.yaml | awk '{print $2}')
|
|
||||||
sed -i -e '/^ artifacthub.io\/changes: |/,$d' ${parentDir}/Chart.yaml
|
|
||||||
echo " artifacthub.io/changes: |" >> ${parentDir}/Chart.yaml
|
|
||||||
echo " - kind: changed" >> ${parentDir}/Chart.yaml
|
|
||||||
echo " description: Bump ${chartName} to ${appVersion}" >> ${parentDir}/Chart.yaml
|
|
||||||
cat ${parentDir}/Chart.yaml
|
|
||||||
|
|
||||||
- name: "Commit and push changes"
|
|
||||||
uses: stefanzweifel/git-auto-commit-action@8756aa072ef5b4a080af5dc8fef36c5d586e521d # v5.0.0
|
|
||||||
with:
|
|
||||||
commit_options: '--signoff'
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
name: Renovate
|
||||||
|
on:
|
||||||
|
# The "*" (#42, asterisk) character has special semantics in YAML, so this
|
||||||
|
# string has to be quoted.
|
||||||
|
schedule:
|
||||||
|
- cron: '0 * * * *'
|
||||||
|
# Manual trigger is also possible
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
renovate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Get token
|
||||||
|
uses: actions/create-github-app-token@f4c6bf6752984b3a29fcc135a5e70eb792c40c6b # v1.8.0
|
||||||
|
id: get_token
|
||||||
|
with:
|
||||||
|
app-id: ${{ vars.RENOVATE_APP_ID }}
|
||||||
|
private-key: ${{ secrets.RENOVATE_APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||||
|
|
||||||
|
- name: Self-hosted Renovate
|
||||||
|
uses: renovatebot/github-action@2d90417499f45ff78a09586f7b9874b19817dba3 # v40.1.0
|
||||||
|
with:
|
||||||
|
configurationFile: .github/configs/renovate-config.js
|
||||||
|
# renovate: datasource=docker depName=ghcr.io/renovatebot/renovate
|
||||||
|
renovate-version: 37.192.1
|
||||||
|
token: '${{ steps.get_token.outputs.token }}'
|
||||||
|
env:
|
||||||
|
LOG_LEVEL: 'debug'
|
||||||
|
RENOVATE_REPOSITORIES: '${{ github.repository }}'
|
|
@ -4,7 +4,7 @@
|
||||||
"fileMatch": ["\\.yaml$", "\\.yml$"]
|
"fileMatch": ["\\.yaml$", "\\.yml$"]
|
||||||
},
|
},
|
||||||
"extends": [
|
"extends": [
|
||||||
"config:base",
|
"config:recommended",
|
||||||
"docker:enableMajor"
|
"docker:enableMajor"
|
||||||
],
|
],
|
||||||
"labels": ["renovate"],
|
"labels": ["renovate"],
|
||||||
|
@ -13,10 +13,12 @@
|
||||||
"**/charts/argo-cd/Chart.yaml",
|
"**/charts/argo-cd/Chart.yaml",
|
||||||
"**/charts/argo-events/Chart.yaml",
|
"**/charts/argo-events/Chart.yaml",
|
||||||
"**/charts/argo-rollouts/Chart.yaml",
|
"**/charts/argo-rollouts/Chart.yaml",
|
||||||
"**/charts/argocd-image-updater/Chart.yaml"
|
"**/charts/argocd-image-updater/Chart.yaml",
|
||||||
|
"**/.github/workflows/renovate.yaml"
|
||||||
],
|
],
|
||||||
"regexManagers": [
|
"customManagers": [
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": ["charts/argo-workflows/Chart.yaml$"],
|
"fileMatch": ["charts/argo-workflows/Chart.yaml$"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"\\sappVersion: (?<currentValue>.*)\\s"
|
"\\sappVersion: (?<currentValue>.*)\\s"
|
||||||
|
@ -26,6 +28,7 @@
|
||||||
"datasourceTemplate": "github-releases"
|
"datasourceTemplate": "github-releases"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": ["charts/argo-cd/Chart.yaml$"],
|
"fileMatch": ["charts/argo-cd/Chart.yaml$"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"\\sappVersion: (?<currentValue>.*)\\s"
|
"\\sappVersion: (?<currentValue>.*)\\s"
|
||||||
|
@ -35,6 +38,7 @@
|
||||||
"datasourceTemplate": "github-releases"
|
"datasourceTemplate": "github-releases"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": ["charts/argo-events/Chart.yaml$"],
|
"fileMatch": ["charts/argo-events/Chart.yaml$"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"\\sappVersion: (?<currentValue>.*)\\s"
|
"\\sappVersion: (?<currentValue>.*)\\s"
|
||||||
|
@ -44,6 +48,7 @@
|
||||||
"datasourceTemplate": "github-releases"
|
"datasourceTemplate": "github-releases"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": ["charts/argo-rollouts/Chart.yaml$"],
|
"fileMatch": ["charts/argo-rollouts/Chart.yaml$"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"\\sappVersion: (?<currentValue>.*)\\s"
|
"\\sappVersion: (?<currentValue>.*)\\s"
|
||||||
|
@ -53,6 +58,7 @@
|
||||||
"datasourceTemplate": "github-releases"
|
"datasourceTemplate": "github-releases"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": ["charts/argocd-image-updater/Chart.yaml$"],
|
"fileMatch": ["charts/argocd-image-updater/Chart.yaml$"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"\\sappVersion: (?<currentValue>.*)\\s"
|
"\\sappVersion: (?<currentValue>.*)\\s"
|
||||||
|
@ -60,28 +66,34 @@
|
||||||
"versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}",
|
"versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}",
|
||||||
"depNameTemplate": "argoproj-labs/argocd-image-updater",
|
"depNameTemplate": "argoproj-labs/argocd-image-updater",
|
||||||
"datasourceTemplate": "github-releases"
|
"datasourceTemplate": "github-releases"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"customType": "regex",
|
||||||
|
"fileMatch": ["^\\.github/workflows/[^/]+\\.ya?ml$"],
|
||||||
|
"matchStrings": [
|
||||||
|
"# renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)\\s+.+version: (?<currentValue>.*)"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
{
|
{
|
||||||
"matchPackagePatterns": ["argoproj/argo-workflows"],
|
"matchPackagePatterns": [
|
||||||
"commitMessagePrefix": "chore(argo-workflows):"
|
"argoproj/argo-workflows",
|
||||||
},
|
"argoproj/argo-cd",
|
||||||
{
|
"argoproj/argo-events",
|
||||||
"matchPackagePatterns": ["argoproj/argo-cd"],
|
"argoproj/argo-rollouts"
|
||||||
"commitMessagePrefix": "chore(argo-cd):"
|
],
|
||||||
},
|
"commitMessagePrefix": "chore({{{replace 'argoproj/' '' depName}}}):",
|
||||||
{
|
"postUpgradeTasks": {
|
||||||
"matchPackagePatterns": ["argoproj/argo-events"],
|
"commands": ["./scripts/renovate-bump-version.sh {{depName}}"]
|
||||||
"commitMessagePrefix": "chore(argo-events):"
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchPackagePatterns": ["argoproj/argo-rollouts"],
|
|
||||||
"commitMessagePrefix": "chore(argo-rollouts):"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"matchPackagePatterns": ["argoproj-labs/argocd-image-updater"],
|
"matchPackagePatterns": ["argoproj-labs/argocd-image-updater"],
|
||||||
"commitMessagePrefix": "chore(argocd-image-updater):"
|
"commitMessagePrefix": "chore({{{replace 'argoproj-labs/' '' depName}}}):",
|
||||||
|
"postUpgradeTasks": {
|
||||||
|
"commands": ["./scripts/renovate-bump-version.sh {{depName}}"]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"matchPackagePatterns": ["redis-ha"],
|
"matchPackagePatterns": ["redis-ha"],
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
depName="${1}"
|
||||||
|
if [ -z "${depName}" ]; then
|
||||||
|
echo "Missing argument 'depName'" >&2
|
||||||
|
echo "Example usage: $0 argoproj/argo-cd" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
chartName=$(echo "$depName" | sed -e "s+^argoproj/++" -e "s+^argoproj-labs/++")
|
||||||
|
echo "Changed chart name is: $chartName"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
|
||||||
|
parentDir="charts/${chartName}"
|
||||||
|
|
||||||
|
# Bump the chart version by one patch version
|
||||||
|
version=$(grep '^version:' "${parentDir}/Chart.yaml" | awk '{print $2}')
|
||||||
|
major=$(echo "${version}" | cut -d. -f1)
|
||||||
|
minor=$(echo "${version}" | cut -d. -f2)
|
||||||
|
patch=$(echo "${version}" | cut -d. -f3)
|
||||||
|
patch=$((patch + 1))
|
||||||
|
sed -i "s/^version:.*/version: ${major}.${minor}.${patch}/g" "${parentDir}/Chart.yaml"
|
||||||
|
|
||||||
|
# Add a changelog entry
|
||||||
|
appVersion=$(grep '^appVersion:' "${parentDir}/Chart.yaml" | awk '{print $2}')
|
||||||
|
sed -i -e '/^ artifacthub.io\/changes: |/,$ d' "${parentDir}/Chart.yaml"
|
||||||
|
{
|
||||||
|
echo " artifacthub.io/changes: |"
|
||||||
|
echo " - kind: changed"
|
||||||
|
echo " description: Bump ${chartName} to ${appVersion}"
|
||||||
|
} >> "${parentDir}/Chart.yaml"
|
||||||
|
cat "${parentDir}/Chart.yaml"
|
Loading…
Reference in New Issue