@@ -21,6 +21,34 @@ usage () {
2121cachet_version=
2222main_version=2.4
2323
24+ do_release () {
25+
26+ # Make sure we are on clean branch
27+ if [[ ! $( git branch --list cachet-" $cachet_version " ) ]]; then
28+ echo " Creating new branch cachet-$cachet_version "
29+ git checkout -b cachet-" $cachet_version "
30+ else
31+ echo " Branch cachet-$cachet_version already exists!"
32+ git checkout cachet-" $cachet_version "
33+ fi
34+
35+ # Generate changelog (requires https://github.com/skywinder/github-changelog-generator)
36+ if hash github_changelog_generator 2> /dev/null; then
37+ github_changelog_generator -u CachetHQ --project Docker --token " $token " --future-release " $cachet_version "
38+ fi
39+
40+ # Modify Dockerfile, commit, tag, and push
41+ echo " Creating tag for $cachet_version "
42+ gsed s/$main_version /" $cachet_version " /g -i Dockerfile
43+ git commit -am " Cachet $cachet_version release"
44+ git tag -a " $cachet_version " -m " Cachet Release $cachet_version "
45+ git push origin cachet-" $cachet_version "
46+ git push origin " $cachet_version "
47+
48+ # Create GitHub release
49+ curl -H " Authorization: token $token " -s -H " Content-Type: application/json" -d ' {"tag_name":"' " ${cachet_version} " ' ","name":"' " ${cachet_version} " ' ","body":"Cachet Release ' " ${cachet_version} " ' ","draft":false,"prerelease":false}' -X POST https://api.github.com/repos/CachetHQ/Docker/releases
50+ }
51+
2452check_releases () {
2553# Get latest releases
2654CACHET_APP_LATEST_REL=$( curl -H " Authorization: token $token " -s https://api.github.com/repos/cachethq/cachet/releases/latest | jq -r .name)
@@ -33,6 +61,10 @@ echo "Latest Docker release: $CACHET_DOCKER_LATEST_REL"
3361if [ " $CACHET_APP_LATEST_REL " = " $CACHET_DOCKER_LATEST_REL " ]
3462 then
3563 echo " Releases on GitHub are up to date!"
64+ else
65+ echo " Docker at " $CACHET_DOCKER_LATEST_REL " -- Releasing latest app release $CACHET_APP_LATEST_REL "
66+ cachet_version=" $CACHET_APP_LATEST_REL "
67+ do_release
3668fi
3769
3870}
@@ -85,11 +117,13 @@ while [ $# -gt 0 ]; do
85117 -u|--update)
86118 cachet_version=$2
87119 echo " Updating to Cachet version: $2 "
120+ do_release
88121 break
89122 exit 0
90123 ;;
91124 --)
92- export cachet_version=$2
125+ cachet_version=$2
126+ do_release
93127 shift
94128 break
95129 ;;
@@ -101,30 +135,3 @@ if [ -z "$cachet_version" ]; then
101135 echo 1>&2 " error: no version specified."
102136 exit 1
103137fi
104-
105- # curl -H "Authorization: token $token" -s https://api.github.com/rate_limit
106-
107- # Make sure we are on clean branch
108- if [[ ! $( git branch --list cachet-" $cachet_version " ) ]]; then
109- echo " Creating new branch cachet-$cachet_version "
110- git checkout -b cachet-" $cachet_version "
111- else
112- echo " Branch cachet-$cachet_version already exists!"
113- git checkout cachet-" $cachet_version "
114- fi
115-
116- # Generate changelog (requires https://github.com/skywinder/github-changelog-generator)
117- if hash github_changelog_generator 2> /dev/null; then
118- github_changelog_generator -u CachetHQ --project Docker --token " $token " --future-release " $cachet_version "
119- fi
120-
121- # Modify Dockerfile, commit, tag, and push
122- echo " Creating tag for $cachet_version "
123- gsed s/$main_version /" $cachet_version " /g -i Dockerfile
124- git commit -am " Cachet $cachet_version release"
125- git tag -a " $cachet_version " -m " Cachet Release $cachet_version "
126- git push origin cachet-" $cachet_version "
127- git push origin " $cachet_version "
128-
129- # Create GitHub release
130- curl -H " Authorization: token $token " -s -H " Content-Type: application/json" -d ' {"tag_name":"' " ${cachet_version} " ' ","name":"' " ${cachet_version} " ' ","body":"Cachet Release ' " ${cachet_version} " ' ","draft":false,"prerelease":false}' -X POST https://api.github.com/repos/CachetHQ/Docker/releases
0 commit comments