4
4
CHART_DIR=" ./charts/selenium-grid"
5
5
CHANGELOG_FILE=" ./charts/selenium-grid/CHANGELOG.md"
6
6
TAG_PATTERN=" selenium-grid"
7
+ SET_TAG=${1:- " " }
7
8
8
9
# Get current chart app version
9
10
CHART_APP_VERSION=$( find . \( -type d -name .git -prune \) -o -type f -name ' Chart.yaml' -print0 | xargs -0 cat | grep ^appVersion | cut -d ' :' -f 2 | tr -d ' [:space:]' )
@@ -27,24 +28,27 @@ generate_changelog() {
27
28
commit_range=" ${previous_tag} ..${current_tag} "
28
29
fi
29
30
31
+ change_title=$current_tag
32
+ if [ " $SET_TAG " = " HEAD" ]; then
33
+ current_tag=" ${SET_TAG} "
34
+ CURRENT_CHART_VERSION=$( find . \( -type d -name .git -prune \) -o -type f -name ' Chart.yaml' -print0 | xargs -0 cat | grep ^version | cut -d ' :' -f 2 | tr -d ' [:space:]' )
35
+ change_title=" ${TAG_PATTERN} -${CURRENT_CHART_VERSION} "
36
+ fi
37
+ echo " Generating changelog for ${change_title} "
38
+
30
39
# Get the changes for each section (Added, Removed, Fixed, Changed)
31
40
image_tag_changes=$( echo " Chart is using image tag $CHART_APP_VERSION " | sed -e ' s/^/- /' )
32
- k8s_versions_tested=$( echo " Chart is tested on Kubernetes versions: $( cat .github/workflows/helm-chart-test.yml | grep -oP " k8s-version: '\Kv.*(?=')" | tr ' \n' ' , ' ) " )
41
+ k8s_versions_tested=$( echo " Chart is tested on Kubernetes versions: $( cat .github/workflows/helm-chart-test.yml | grep -oP " k8s-version: '\Kv.*(?=')" | tr ' \n' ' ' ) " | sed -e ' s/^/- / ' )
33
42
added_changes=$( git log --pretty=format:" %s :: %an" " $commit_range " -- " $CHART_DIR " | grep -iE " ^feat|^add" | sed -e ' s/^/- /' )
34
43
removed_changes=$( git log --pretty=format:" %s :: %an" " $commit_range " -- " $CHART_DIR " | grep -iE " ^remove|^deprecate|^delete" | sed -e ' s/^/- /' )
35
44
fixed_changes=$( git log --pretty=format:" %s :: %an" " $commit_range " -- " $CHART_DIR " | grep -iE " ^fix|^bug" | sed -e ' s/^/- /' )
36
45
changed_changes=$( git log --pretty=format:" %s :: %an" " $commit_range " -- " $CHART_DIR " | grep -iEv " ^feat|^add|^remove|^deprecate|^delete|^fix|^bug" | sed -e ' s/^/- /' )
37
46
38
- if [[ $( cat $CHANGELOG_FILE ) == * " ${current_tag} " * ]]; then
39
- echo " Changelog already generated for ${current_tag} "
40
- exit 0
41
- fi
42
-
43
47
# Create a temporary file
44
48
temp_file=$( mktemp)
45
49
46
50
# Write to the temporary file
47
- echo " ## :heavy_check_mark: ${current_tag } " >> " $temp_file "
51
+ echo " ## :heavy_check_mark: ${change_title } " >> " $temp_file "
48
52
echo " " >> " $temp_file "
49
53
echo " $image_tag_changes " >> " $temp_file "
50
54
echo " $k8s_versions_tested " >> " $temp_file "
@@ -74,11 +78,26 @@ generate_changelog() {
74
78
echo " " >> " $temp_file "
75
79
fi
76
80
81
+ # Create chart_release_notes.md
82
+ release_notes_file=" $CHART_DIR /RELEASE_NOTES.md"
83
+ chart_description=$( find . \( -type d -name .git -prune \) -o -type f -name ' Chart.yaml' -print0 | xargs -0 cat | grep ^description | cut -d ' :' -f 2)
84
+ echo " $chart_description " > " $release_notes_file "
85
+ echo " " >> " $release_notes_file "
86
+ cat $temp_file >> " $release_notes_file "
87
+ echo " Generated release notes at $release_notes_file "
88
+
77
89
# Append the existing content of CHANGELOG to the temporary file
78
90
cat " $CHANGELOG_FILE " >> " $temp_file "
79
91
80
- # Overwrite CHANGELOG with the content of the temporary file
81
- mv " $temp_file " " $CHANGELOG_FILE "
92
+ if [[ $( cat $CHANGELOG_FILE ) == * " ${change_title} " * ]]; then
93
+ echo " Changelog already generated for ${change_title} "
94
+ rm -rf " $temp_file "
95
+ exit 0
96
+ else
97
+ # Overwrite CHANGELOG with the content of the temporary file
98
+ mv " $temp_file " " $CHANGELOG_FILE "
99
+ fi
100
+
82
101
}
83
102
84
103
# Run the function to generate the changelog
0 commit comments