@@ -6,114 +6,124 @@ metadata:
6
6
argocd.argoproj.io/sync-wave : ' 55'
7
7
spec :
8
8
templates :
9
- - name : get-chart-version
10
- inputs :
11
- artifacts :
12
- - name : repo-source
13
- path : /src
14
- parameters :
15
- - name : appName
16
- - name : chartDir
17
- script :
18
- image : kubefirst/chubbo:0.2
19
- command : [python3]
20
- workingDir : ' /src/{{inputs.parameters.appName}}'
21
- source : |
22
- import yaml, semver
23
- with open('./{{inputs.parameters.chartDir}}/Chart.yaml') as f:
24
- chart_yaml = yaml.load(f, Loader=yaml.FullLoader)
25
- print(chart_yaml['version'])
26
- - name : set-chart-versions
27
- inputs :
28
- artifacts :
29
- - name : repo-source
30
- path : /src
31
- parameters :
32
- - name : appName
33
- - name : chartDir
34
- - name : chartVersion
35
- - name : shortSha
36
- script :
37
- image : kubefirst/chubbo:0.2
38
- command : [bash]
39
- workingDir : ' /src/{{inputs.parameters.appName}}'
40
- source : |
41
- set -e
42
- NEW_CHART_VERSION={{inputs.parameters.chartVersion}}
43
- echo "setting ./{{inputs.parameters.chartDir}}/Chart.yaml to version: ${NEW_CHART_VERSION}"
44
- sed -i "s/version:.*/version: ${NEW_CHART_VERSION}/g" /src/{{inputs.parameters.appName}}/{{inputs.parameters.chartDir}}/Chart.yaml
45
- echo "setting ./{{inputs.parameters.chartDir}}/Chart.yaml to appVersion: {{inputs.parameters.shortSha}}"
46
- sed -i "s/appVersion:.*/appVersion: {{inputs.parameters.shortSha}}/g" /src/{{inputs.parameters.appName}}/{{inputs.parameters.chartDir}}/Chart.yaml
47
- echo "adjusted chart:"
48
- cat /src/{{inputs.parameters.appName}}/{{inputs.parameters.chartDir}}/Chart.yaml
49
- outputs :
50
- artifacts :
51
- - name : repo-source
52
- path : /src
53
- - name : publish-chart
54
- retryStrategy :
55
- limit : ' 5'
56
- inputs :
57
- artifacts :
58
- - name : repo-source
59
- path : /src
60
- parameters :
61
- - name : appName
62
- - name : chartDir
63
- # todo need to address username and password for chartmuseum
64
- container :
65
- image : kubefirst/chubbo:0.2
66
- command : ['bash', '-c']
67
- workingDir : ' /src/{{inputs.parameters.appName}}'
68
- args :
69
- - helm repo add kubefirst http://chartmuseum.chartmuseum.svc.cluster.local:8080 --username k-ray --password feedkraystars || bash -c "sleep 10 && echo 'waiting before trying again' && exit 1";
70
- helm push {{inputs.parameters.chartDir}} kubefirst || bash -c "sleep 10 && echo 'waiting before trying again' && exit 1";
71
- - name : set-environment-version
72
- inputs :
73
- artifacts :
74
- - name : repo-source
75
- path : /src
76
- parameters :
77
- - name : chartVersion
78
- - name : environment
79
- - name : fullChartPath
80
- script :
81
- image : kubefirst/chubbo:0.2
82
- command : [bash]
83
- workingDir : ' /src/gitops'
84
- source : |
85
- set -e
86
- echo "setting wrapper Chart.yaml to version: {{inputs.parameters.chartVersion}}"
87
- sed -i "s/ version:.*/ version: {{inputs.parameters.chartVersion}}/g" "{{inputs.parameters.fullChartPath}}"
88
- echo "updated {{inputs.parameters.environment}} wrapper chart version to {{inputs.parameters.chartVersion}}"
89
- outputs :
90
- artifacts :
91
- - name : repo-source
92
- path : /src
93
- - name : increment-chart-minor
94
- inputs :
95
- artifacts :
96
- - name : repo-source
97
- path : /src
98
- parameters :
99
- - name : appName
100
- - name : chartDir
101
- - name : chartVersion
102
- script :
103
- image : kubefirst/chubbo:0.2
104
- command : [python3]
105
- workingDir : ' /src/{{inputs.parameters.appName}}'
106
- source : |
107
- import yaml, semver
108
- with open('./{{inputs.parameters.chartDir}}/Chart.yaml') as f:
109
- chart_yaml = yaml.load(f, Loader=yaml.FullLoader)
110
- chart_version = semver.parse('{{inputs.parameters.chartVersion}}')
111
- next_chart_version = '{}.{}.0'.format(chart_version['major'],chart_version['minor']+1)
112
- chart_yaml['version'] = next_chart_version
113
- with open('./{{inputs.parameters.chartDir}}/Chart.yaml', 'w') as f:
114
- yaml.dump(chart_yaml, f)
115
- print('prepared next release in {{inputs.parameters.chartDir}} with bumped chart version after releasing {}'.format(next_chart_version))
116
- outputs :
117
- artifacts :
118
- - name : repo-source
119
- path : /src
9
+ - name : get-chart-version
10
+ inputs :
11
+ artifacts :
12
+ - name : repo-source
13
+ path : /src
14
+ parameters :
15
+ - name : appName
16
+ - name : chartDir
17
+ script :
18
+ image : kubefirst/chubbo:0.2
19
+ command : [python3]
20
+ workingDir : ' /src/{{inputs.parameters.appName}}'
21
+ source : |
22
+ import yaml, semver
23
+ with open('./{{inputs.parameters.chartDir}}/Chart.yaml') as f:
24
+ chart_yaml = yaml.load(f, Loader=yaml.FullLoader)
25
+ print(chart_yaml['version'])
26
+ - name : set-chart-versions
27
+ inputs :
28
+ artifacts :
29
+ - name : repo-source
30
+ path : /src
31
+ parameters :
32
+ - name : appName
33
+ - name : chartDir
34
+ - name : chartVersion
35
+ - name : shortSha
36
+ script :
37
+ image : kubefirst/chubbo:0.2
38
+ command : [bash]
39
+ workingDir : ' /src/{{inputs.parameters.appName}}'
40
+ source : |
41
+ set -e
42
+ NEW_CHART_VERSION={{inputs.parameters.chartVersion}}
43
+ echo "setting ./{{inputs.parameters.chartDir}}/Chart.yaml to version: ${NEW_CHART_VERSION}"
44
+ sed -i "s/version:.*/version: ${NEW_CHART_VERSION}/g" /src/{{inputs.parameters.appName}}/{{inputs.parameters.chartDir}}/Chart.yaml
45
+ echo "setting ./{{inputs.parameters.chartDir}}/Chart.yaml to appVersion: {{inputs.parameters.shortSha}}"
46
+ sed -i "s/appVersion:.*/appVersion: {{inputs.parameters.shortSha}}/g" /src/{{inputs.parameters.appName}}/{{inputs.parameters.chartDir}}/Chart.yaml
47
+ echo "adjusted chart:"
48
+ cat /src/{{inputs.parameters.appName}}/{{inputs.parameters.chartDir}}/Chart.yaml
49
+ outputs :
50
+ artifacts :
51
+ - name : repo-source
52
+ path : /src
53
+ - name : publish-chart
54
+ retryStrategy :
55
+ limit : ' 5'
56
+ inputs :
57
+ artifacts :
58
+ - name : repo-source
59
+ path : /src
60
+ parameters :
61
+ - name : appName
62
+ - name : chartDir
63
+ container :
64
+ image : kubefirst/chubbo:0.2
65
+ command : ['bash', '-c']
66
+ workingDir : ' /src/{{inputs.parameters.appName}}'
67
+ args :
68
+ - helm repo add kubefirst http://chartmuseum.chartmuseum.svc.cluster.local:8080 --username ${BASIC_AUTH_USER} --password ${BASIC_AUTH_PASS} || bash -c "sleep 10 && echo 'waiting before trying again' && exit 1";
69
+ helm push {{inputs.parameters.chartDir}} kubefirst || bash -c "sleep 10 && echo 'waiting before trying again' && exit 1";
70
+ env :
71
+ - name : BASIC_AUTH_PASS
72
+ valueFrom :
73
+ secretKeyRef :
74
+ name : ci-secrets
75
+ key : BASIC_AUTH_PASS
76
+ - name : BASIC_AUTH_USER
77
+ valueFrom :
78
+ secretKeyRef :
79
+ name : ci-secrets
80
+ key : BASIC_AUTH_USER
81
+ - name : set-environment-version
82
+ inputs :
83
+ artifacts :
84
+ - name : repo-source
85
+ path : /src
86
+ parameters :
87
+ - name : chartVersion
88
+ - name : environment
89
+ - name : fullChartPath
90
+ script :
91
+ image : kubefirst/chubbo:0.2
92
+ command : [bash]
93
+ workingDir : ' /src/gitops'
94
+ source : |
95
+ set -e
96
+ echo "setting wrapper Chart.yaml to version: {{inputs.parameters.chartVersion}}"
97
+ sed -i "s/ version:.*/ version: {{inputs.parameters.chartVersion}}/g" "{{inputs.parameters.fullChartPath}}"
98
+ echo "updated {{inputs.parameters.environment}} wrapper chart version to {{inputs.parameters.chartVersion}}"
99
+ outputs :
100
+ artifacts :
101
+ - name : repo-source
102
+ path : /src
103
+ - name : increment-chart-minor
104
+ inputs :
105
+ artifacts :
106
+ - name : repo-source
107
+ path : /src
108
+ parameters :
109
+ - name : appName
110
+ - name : chartDir
111
+ - name : chartVersion
112
+ script :
113
+ image : kubefirst/chubbo:0.2
114
+ command : [python3]
115
+ workingDir : ' /src/{{inputs.parameters.appName}}'
116
+ source : |
117
+ import yaml, semver
118
+ with open('./{{inputs.parameters.chartDir}}/Chart.yaml') as f:
119
+ chart_yaml = yaml.load(f, Loader=yaml.FullLoader)
120
+ chart_version = semver.parse('{{inputs.parameters.chartVersion}}')
121
+ next_chart_version = '{}.{}.0'.format(chart_version['major'],chart_version['minor']+1)
122
+ chart_yaml['version'] = next_chart_version
123
+ with open('./{{inputs.parameters.chartDir}}/Chart.yaml', 'w') as f:
124
+ yaml.dump(chart_yaml, f)
125
+ print('prepared next release in {{inputs.parameters.chartDir}} with bumped chart version after releasing {}'.format(next_chart_version))
126
+ outputs :
127
+ artifacts :
128
+ - name : repo-source
129
+ path : /src
0 commit comments