Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ jobs:
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
with:
# renovate: datasource=node-version packageName=node versioning=node
node-version: '22.8.0'
node-version: '22.9.0'
- name: Restore node dependency cache
id: cache-dependencies
uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4.1.0
Expand Down
64 changes: 64 additions & 0 deletions renovate-presets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Renovate shared presets

This folder contains shared presets.
It also improve separation of concerns between packageRules in a single file quickly become hard to maintain.

# How to use a preset

1. Add the preset to your renovate.json file:

```json
{
//json
"extends": [
"github>argoproj/argo-cd//renovate-presets:argoproj"
]
}
```

### Note :

It would make sense to move this folder to a new repository in the future.

Benefits:
- Improved feedback loop for configuration changes, no need to wait for a PR to be merged into master.
- Avoid polluting git history.
- Avoids consuming the repository's CI/CD resources.
- The `renovate.json` in each repository can be simplified to only include a single presets :
```json
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>argoproj/renovate-presets//argoproj/renovate.json5"
],
// rules are empty and this file won't need to be modified again.
"packageRules": []
}
```
Inconvenient:
- Owners of a repository can impact the configuration of all repositories. Use codeowners to prevent this.

Example of repo structure :
```shell
.
├── README.md
├── .github/CODEOWNERS
├── common.json5 # common presets for all repositories
├── fix/
│ └── openssf-merge-confidence-columns.json5
├── custom-managers/
│ ├── bash.json5
│ └── yaml.json5
└── argoproj/ # organization
├── argo-cd/ # repository
├── devtools.json5 # rules specific to the devtool (CI and dev environment...)
├── doc.json5 # rules specific to the doc written with mkdoc.
├── # etc...
└── renovate.json5 # A single preset referenced from the repository argopro/argo-cd.
├── argo-rollouts/ # repository
│ ── renovate.json5




```
55 changes: 55 additions & 0 deletions renovate-presets/commons.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Contains rules that makes sense to enforce by default.",
"dependencyDashboard": true,
"dependencyDashboardOSVVulnerabilitySummary": "all",
"osvVulnerabilityAlerts": true,
"extends": [
"config:best-practices",
"customManagers:dockerfileVersions",
"security:openssf-scorecard",
"mergeConfidence:all-badges",
"github>argoproj/argo-cd//renovate-presets/fix/openssf-merge-confidence-columns.json5",
],
"packageRules": [
{
"description": "Define labels used for all PRs",
"matchPackageNames": [
"*"
],
"labels": [
"dependencies"
]
},
{
"description": "Define labels of the dependency dashboard issues.",
"dependencyDashboardLabels": [
"dependencies",
]
},
{
"description": "Add labels for PRs related to javascript",
"matchDatasources": [
"node-version",
"npm"
],
"addLabels": [
"javascript"
]
},
{
"description": "Add labels for PRs related to go",
"matchDatasources": [
"golang-version",
"go"
],
"addLabels": [
"go"
]
},
{
"description": "Define the label to make Renovate stop updating a PR.",
"stopUpdatingLabel": "dependencies:stop-updating"
}
]
}
2 changes: 1 addition & 1 deletion renovate-presets/custom-managers/yaml.json5
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"customManagers": [
{
"description": "A generic custom manager for updating any yaml fields ending by *version: case incensitive",
"description": "A generic custom manager for updating any yaml fields ending by 'version:' (case insensitive)",
"customType": "regex",
"fileMatch": [
".github\\/workflows.+\\.(?:yml|yaml)$"
Expand Down
72 changes: 72 additions & 0 deletions renovate-presets/devtool.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Rules specific to the devtool (CI, dev environment...)",
"packageRules": [
{
"description": "Enable updates from specified datasources",
"matchDatasources": [
"node-version",
"golang-version"
],
"enabled": true
},
{
"description": "Enable updates from specified go modules",
"matchDatasources": [
"go"
],
"matchPackageNames": [
"github.com/golangci/golangci-lint"
],
"enabled": true
},
{
"description": "Enable updates from specified docker images",
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"docker.io/library/node",
"docker.io/library/golang"
],
"enabled": true
},
{
"description": "Group golang-version packages",
"groupName": "golang version",
"matchDepNames": [
"go",
"golang",
"docker.io/golang",
"docker.io/library/golang"
],
"separateMajorMinor": true
},
{
"description": "Group node-version packages",
"groupName": "node version",
"matchDepNames": [
"node",
"docker.io/library/node"
],
"separateMajorMinor": true
},
{
"description": "Separate major into their PRs",
"matchDatasources": [
"node-version",
"golang-version"
],
"separateMultipleMajor": true
},
{
"description": "Example: reduce noise by automerging safe pkgs. Multiple match fields can be used to reduce the scope of this rule...",
"matchUpdateTypes": [
"patch",
"pin",
"digest"
],
"automerge": false
}
]
}
13 changes: 13 additions & 0 deletions renovate-presets/fix/disable-all-updates.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Contains rules specific to the devtool (CI and dev environment...)",
"packageRules": [
{
"description": "Disable all updates to avoid conflicts with dependabot, then enable what you need.",
"matchPackageNames": [
"*"
],
"enabled": false
}
]
}
111 changes: 4 additions & 107 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,113 +1,10 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"dependencyDashboard": true,
"dependencyDashboardOSVVulnerabilitySummary": "all",
"osvVulnerabilityAlerts": true,
"reviewersFromCodeOwners": true,
"extends": [
"config:best-practices",
"customManagers:dockerfileVersions",
"security:openssf-scorecard",
"mergeConfidence:all-badges",
"github>argoproj/argo-cd//renovate-presets/fix/openssf-merge-confidence-columns.json5",
"github>ggjulio/argo-cd//renovate-presets/commons.json5",
"github>argoproj/argo-cd//renovate-presets/custom-managers/shell.json5",
"github>argoproj/argo-cd//renovate-presets/custom-managers/yaml.json5"
],
"packageRules": [
{
"description": "Disable all updates to avoid conflicts with dependabot, then enable what we want",
"matchPackageNames": [
"*"
],
"enabled": false
},
{
"description": "Add label dependencies to all PRs",
"matchPackageNames": [
"*"
],
"labels": [
"dependencies"
]
},
{
"description": "Enable node-version",
"matchDatasources": [
"node-version"
],
"addLabels": [
"javascript"
],
"enabled": true
},
{
"description": "Enable golang-version",
"matchDatasources": [
"golang-version"
],
"addLabels": [
"go"
],
"enabled": true
},
{
"description": "Enable some go modules",
"matchDatasources": [
"go"
],
"matchPackageNames": [
"go",
"github.com/golangci/golangci-lint"
],
"addLabels": [
"go"
],
"enabled": true
},
{
"description": "Enable bump of golang version in go.mod",
"matchDatasources": [
"golang-version"
],
"rangeStrategy": "bump"
},
{
"description": "Enable some docker images",
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"docker.io/library/node",
"docker.io/library/golang"
],
"enabled": true
},
{
"description": "Group golang-version packages",
"groupName": "golang version",
"matchDepNames": [
"go",
"golang",
"docker.io/golang",
"docker.io/library/golang"
]
},
{
"description": "Group node-version packages",
"groupName": "node version",
"matchDepNames": [
"node",
"docker.io/library/node"
]
},
{
"description": "an example to reduce noise by automerging pkgs that are safe to merge, multiple match fields can be used to reduce the scope of this rule...)",
"matchUpdateTypes": [
"patch",
"pin",
"digest"
],
"automerge": false
}
"github>argoproj/argo-cd//renovate-presets/custom-managers/yaml.json5",
"github>ggjulio/argo-cd//renovate-presets/fix/disable-all-updates.json5",
"github>ggjulio/argo-cd//renovate-presets/devtool.json5"
]
}
2 changes: 1 addition & 1 deletion ui/.nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v21.6.1
21.7.3