@@ -7,6 +7,21 @@ import yaml from 'js-yaml'
7
7
import semver from 'semver'
8
8
import { $ } from 'zx'
9
9
10
+ export function isVersionApplicable ( currentVersion , version , allowedUpgradeType ) {
11
+ if ( semver . lte ( version , currentVersion ) ) {
12
+ return false // Ignore versions that are <= current version
13
+ }
14
+ if ( allowedUpgradeType === 'patch' ) {
15
+ return semver . diff ( currentVersion , version ) === 'patch'
16
+ }
17
+ if ( allowedUpgradeType === 'minor' ) {
18
+ const isMinorOrPatch =
19
+ semver . diff ( currentVersion , version ) === 'patch' || semver . diff ( currentVersion , version ) === 'minor'
20
+ return isMinorOrPatch
21
+ }
22
+ return true // Default: Allow all upgrades
23
+ }
24
+
10
25
async function main ( ) {
11
26
config ( )
12
27
const env = envalid . cleanEnv ( process . env , {
@@ -44,6 +59,7 @@ async function main() {
44
59
}
45
60
46
61
for ( const dependency of chart . dependencies ) {
62
+ const currentDependencyVersion = dependency . version
47
63
if ( dependencyNameFilter . length != 0 && ! dependencyNameFilter . includes ( dependency . name ) ) {
48
64
console . log (
49
65
`Skipping updates for dependency: ${ dependency . name } due to dependencyNameFilter: ${ dependencyNameFilter } ` ,
@@ -70,18 +86,7 @@ async function main() {
70
86
// Filter versions for allowed upgrades (minor/patch)
71
87
const currentVersion = dependency . version
72
88
const filteredVersions = allVersions . filter ( ( version ) => {
73
- if ( semver . lte ( version , currentVersion ) ) {
74
- return false // Ignore versions that are <= current version
75
- }
76
- if ( allowedUpgradeType === 'patch' ) {
77
- return semver . diff ( currentVersion , version ) === 'patch'
78
- }
79
- if ( allowedUpgradeType === 'minor' ) {
80
- const isMinorOrPatch =
81
- semver . diff ( currentVersion , version ) === 'patch' || semver . diff ( currentVersion , version ) === 'minor'
82
- return isMinorOrPatch
83
- }
84
- return true // Default: Allow all upgrades
89
+ return isVersionApplicable ( currentVersion , version , allowedUpgradeType )
85
90
} )
86
91
87
92
if ( ! filteredVersions . length ) {
@@ -143,8 +148,9 @@ async function main() {
143
148
}
144
149
} catch ( error ) {
145
150
console . error ( 'Error updating dependencies:' , error )
146
- continue
147
151
} finally {
152
+ // restore this version so it does not populate to the next chart update
153
+ dependency . version = currentDependencyVersion
148
154
if ( ciCreateFeatureBranch ) {
149
155
// Reset to the main branch for the next dependency
150
156
await $ `git checkout ${ baseBranch } `
0 commit comments