@@ -8,15 +8,12 @@ DOCKERHUB_USER=${DOCKERHUB_USER:-weaveworks}
8
8
RELEASE_NAME=${RELEASE_NAME:- " Weave Scope" }
9
9
RELEASE_DESCRIPTION=${RELEASE_DESCRIPTION:- " Container Visibility" }
10
10
11
- PWD=` pwd`
12
- WC=" wc"
13
- # Use GNU wc on Darwin
14
- case $OSTYPE in darwin* ) WC=" gwc" ;; esac
11
+ PWD=$( pwd)
15
12
16
13
infer_release_type () {
17
- if echo $1 | grep -qE ' ^v[0-9]+\.[0-9]+\.0+$' ; then
14
+ if echo " $1 " | grep -qE ' ^v[0-9]+\.[0-9]+\.0+$' ; then
18
15
echo MAINLINE
19
- elif echo $1 | grep -qE ' ^v[0-9]+\.[0-9]+\.[0-9]+$' ; then
16
+ elif echo " $1 " | grep -qE ' ^v[0-9]+\.[0-9]+\.[0-9]+$' ; then
20
17
echo BRANCH
21
18
else
22
19
echo PRERELEASE
@@ -26,10 +23,12 @@ infer_release_type() {
26
23
setup () {
27
24
# Ensure we have exactly one annotated tag pointing at HEAD
28
25
HEAD_TAGS=$( git tag --points-at HEAD)
29
- TAG_COUNT=$( echo $( echo $HEAD_TAGS | wc -w) ) # mac hack
26
+ # shellcheck disable=SC2116
27
+ # shellcheck disable=SC2005
28
+ TAG_COUNT=$( echo " $( echo " $HEAD_TAGS " | wc -w) " ) # mac hack
30
29
case $TAG_COUNT in
31
30
1)
32
- if [ $HEAD_TAGS != " latest_release" ] ; then
31
+ if [ " $HEAD_TAGS " != " latest_release" ] ; then
33
32
LATEST_TAG=$HEAD_TAGS
34
33
else
35
34
echo " Cannot determine version - latest_release points at HEAD" >&2
@@ -49,11 +48,11 @@ setup() {
49
48
;;
50
49
esac
51
50
52
- RELEASE_TYPE=$( infer_release_type $LATEST_TAG )
51
+ RELEASE_TYPE=$( infer_release_type " $LATEST_TAG " )
53
52
echo " == Inferred release type $RELEASE_TYPE from tag $LATEST_TAG "
54
53
55
- LATEST_TAG_SHA=$( git rev-parse $LATEST_TAG )
56
- LATEST_TAG_COMMIT_SHA=$( git rev-list -1 $LATEST_TAG )
54
+ LATEST_TAG_SHA=$( git rev-parse " $LATEST_TAG " )
55
+ LATEST_TAG_COMMIT_SHA=$( git rev-list -1 " $LATEST_TAG " )
57
56
LATEST_RELEASE_SHA=$( git rev-parse latest_release)
58
57
LATEST_RELEASE_COMMIT_SHA=$( git rev-list -1 latest_release)
59
58
if [ " $RELEASE_TYPE " != ' PRERELEASE' ] ; then
@@ -69,20 +68,20 @@ build() {
69
68
setup
70
69
71
70
echo " == Clone repo at $LATEST_TAG for version $VERSION "
72
- if [ -d $RELEASE_DIR ]; then
71
+ if [ -d " $RELEASE_DIR " ]; then
73
72
echo -e " \u2757 Release directory $RELEASE_DIR already exists, you may want to" >&2
74
73
echo -e " \trm -rf $RELEASE_DIR " >&2
75
74
exit 1
76
75
fi
77
76
78
77
# # Clone the repo at the tag and go there
79
78
mkdir -p releases
80
- git clone -q -b $LATEST_TAG . $RELEASE_DIR 2> /dev/null
81
- cd $RELEASE_DIR
79
+ git clone -q -b " $LATEST_TAG " . " $RELEASE_DIR " 2> /dev/null
80
+ cd " $RELEASE_DIR "
82
81
83
82
# # Check that the top changelog entry is this version
84
83
if ! latest_changelog=$( perl -nle' print $& if m{(?<=^## Release ).*}' ./CHANGELOG.md | head -1) || \
85
- ! [ ` echo " $latest_changelog " = " $VERSION " ` ]; then
84
+ ! [ " $latest_changelog " = " $VERSION " ]; then
86
85
echo -e " \u2757 Latest changelog entry \" $latest_changelog \" does not match the release version $VERSION " >&2
87
86
exit 1
88
87
fi
@@ -93,9 +92,9 @@ build() {
93
92
# # Inject the version numbers and build the distributables
94
93
# # (library versions?)
95
94
sed -i.tmp " s/SCRIPT_VERSION=\" [^\" ]*\" /SCRIPT_VERSION=\" $VERSION \" /" ./scope
96
- make SUDO=$SUDO SCOPE_VERSION=$VERSION DOCKERHUB_USER=$DOCKERHUB_USER
95
+ make SUDO=" $SUDO " SCOPE_VERSION=" $VERSION " DOCKERHUB_USER=" $DOCKERHUB_USER "
97
96
98
- if make tests SUDO=$SUDO ; then
97
+ if make tests SUDO=" $SUDO " ; then
99
98
echo -e ' \u2713 Tests pass'
100
99
else
101
100
echo -e " \u2757 Tests failed, probably best not publish this one" >&2
@@ -110,18 +109,18 @@ build() {
110
109
# fi
111
110
112
111
echo -e ' \u2713 Build OK'
113
- echo ' ** Release artefacts in' $RELEASE_DIR
112
+ echo ' ** Release artefacts in' " $RELEASE_DIR "
114
113
}
115
114
116
115
draft () {
117
116
setup
118
117
119
- cd $PWD / $RELEASE_DIR
118
+ cd " $PWD " / " $RELEASE_DIR "
120
119
121
120
echo " == Sanity checks"
122
121
123
122
# # Check that the tag exists by looking at github
124
- if ! curl -sSf https://api.github.com/repos/$GITHUB_USER /scope/git/tags/$LATEST_TAG_SHA > /dev/null 2>&1 ; then
123
+ if ! curl -sSf " https://api.github.com/repos/$GITHUB_USER /scope/git/tags/$LATEST_TAG_SHA " > /dev/null 2>&1 ; then
125
124
echo -e " \u2757 Tag $LATEST_TAG is not on GitHub, or is not the same as the local tag" >&2
126
125
echo -e " \thttps://github.com/$GITHUB_USER /scope/tags" >&2
127
126
echo " You may need to" >&2
@@ -133,31 +132,31 @@ draft() {
133
132
134
133
# # Check that the version does not already exist by looking at github
135
134
# # releases
136
- if github-release info --user $GITHUB_USER --repo scope --tag $LATEST_TAG > /dev/null 2>&1 ; then
135
+ if github-release info --user " $GITHUB_USER " --repo scope --tag " $LATEST_TAG " > /dev/null 2>&1 ; then
137
136
echo -e " \u2757 Release $LATEST_TAG already exists on GitHub" >&2
138
137
echo -e " \thttps://github.com/$GITHUB_USER /scope/releases/$LATEST_TAG " >&2
139
138
exit 1
140
139
fi
141
140
142
- echo ' ** Sanity checks OK for publishing tag' $LATEST_TAG as $DOCKERHUB_USER /scope:$VERSION
141
+ echo ' ** Sanity checks OK for publishing tag' " $LATEST_TAG " as " $DOCKERHUB_USER /scope:$VERSION "
143
142
144
143
RELEASE_ARGS=" --draft"
145
144
if [ " $RELEASE_TYPE " = ' PRERELEASE' ] ; then
146
145
RELEASE_ARGS=" $RELEASE_ARGS --pre-release"
147
146
fi
148
147
149
148
echo " == Creating GitHub release $RELEASE_ARGS $RELEASE_NAME $VERSION "
150
- github-release release $RELEASE_ARGS \
151
- --user $GITHUB_USER \
149
+ github-release release " $RELEASE_ARGS " \
150
+ --user " $GITHUB_USER " \
152
151
--repo scope \
153
- --tag $LATEST_TAG \
152
+ --tag " $LATEST_TAG " \
154
153
--name " $RELEASE_NAME $VERSION " \
155
154
--description " $RELEASE_DESCRIPTION "
156
155
157
156
github-release upload \
158
- --user $GITHUB_USER \
157
+ --user " $GITHUB_USER " \
159
158
--repo scope \
160
- --tag $LATEST_TAG \
159
+ --tag " $LATEST_TAG " \
161
160
--name " scope" \
162
161
--file " ./scope"
163
162
@@ -167,25 +166,20 @@ draft() {
167
166
168
167
publish () {
169
168
setup
170
- cd $PWD /$RELEASE_DIR
171
-
172
- UPDATE_LATEST=false
173
- if [ " $RELEASE_TYPE " = ' MAINLINE' ] ; then
174
- UPDATE_LATEST=true
175
- fi
169
+ cd " $PWD " /" $RELEASE_DIR "
176
170
177
171
if [ " $RELEASE_TYPE " = ' PRERELEASE' ] ; then
178
172
echo " == Tagging and pushing images on docker hub as user $DOCKERHUB_USER "
179
- $SUDO docker tag -f $DOCKERHUB_USER /scope $DOCKERHUB_USER /scope:$VERSION
180
- $SUDO docker push $DOCKERHUB_USER /scope:$VERSION
173
+ $SUDO docker tag -f " $DOCKERHUB_USER " /scope " $DOCKERHUB_USER /scope:$VERSION "
174
+ $SUDO docker push " $DOCKERHUB_USER /scope:$VERSION "
181
175
echo " ** Docker images tagged and pushed"
182
176
183
177
echo " == Publishing pre-release on GitHub"
184
178
185
179
github-release publish \
186
- --user $GITHUB_USER \
180
+ --user " $GITHUB_USER " \
187
181
--repo scope \
188
- --tag $LATEST_TAG
182
+ --tag " $LATEST_TAG "
189
183
190
184
echo " ** Pre-release $RELEASE_NAME $VERSION published at"
191
185
echo -e " \thttps://github.com/$GITHUB_USER /scope/releases/$LATEST_TAG "
@@ -199,44 +193,44 @@ publish() {
199
193
fi
200
194
201
195
# # Check that the 'latest_release' tag exists by looking at github
202
- if ! curl -sSf https://api.github.com/repos/$GITHUB_USER /scope/git/tags/$LATEST_RELEASE_SHA > /dev/null 2>&1 ; then
196
+ if ! curl -sSf " https://api.github.com/repos/$GITHUB_USER /scope/git/tags/$LATEST_RELEASE_SHA " > /dev/null 2>&1 ; then
203
197
echo -e " \u2757 Tag latest_release is not on GitHub, or is not the same as the local tag" >&2
204
198
echo -e " \thttps://github.com/$GITHUB_USER /scope/tags" >&2
205
199
echo " You may need to" >&2
206
200
echo -e
" \tgit push -f [email protected] :$GITHUB_USER /scope latest_release" >&2
207
201
exit 1
208
202
fi
209
- echo ' ** Sanity checks OK for publishing tag' $LATEST_TAG as $DOCKERHUB_USER /scope:$VERSION
203
+ echo ' ** Sanity checks OK for publishing tag' " $LATEST_TAG " as " $DOCKERHUB_USER /scope:$VERSION "
210
204
211
205
echo " == Tagging and pushing images on docker hub as user $DOCKERHUB_USER "
212
- $SUDO docker tag -f $DOCKERHUB_USER /scope $DOCKERHUB_USER /scope:$VERSION
213
- $SUDO docker push $DOCKERHUB_USER /scope:$VERSION
206
+ $SUDO docker tag -f " $DOCKERHUB_USER " /scope " $DOCKERHUB_USER /scope:$VERSION "
207
+ $SUDO docker push " $DOCKERHUB_USER " /scope:$" VERSION"
214
208
echo " ** Docker images tagged and pushed"
215
209
216
210
echo " == Publishing release on GitHub"
217
211
218
212
github-release publish \
219
- --user $GITHUB_USER \
213
+ --user " $GITHUB_USER " \
220
214
--repo scope \
221
- --tag $LATEST_TAG
215
+ --tag " $LATEST_TAG "
222
216
223
- if github-release info --user $GITHUB_USER --repo scope \
217
+ if github-release info --user " $GITHUB_USER " --repo scope \
224
218
--tag latest_release > /dev/null 2>&1 ; then
225
219
github-release delete \
226
- --user $GITHUB_USER \
220
+ --user " $GITHUB_USER " \
227
221
--repo scope \
228
222
--tag latest_release
229
223
fi
230
224
231
225
github-release release \
232
- --user $GITHUB_USER \
226
+ --user " $GITHUB_USER " \
233
227
--repo scope \
234
228
--tag latest_release \
235
229
--name " $RELEASE_NAME latest ($VERSION )" \
236
230
--description " [Release Notes](https://github.com/$GITHUB_USER /scope/releases/$LATEST_TAG )"
237
231
238
232
github-release upload \
239
- --user $GITHUB_USER \
233
+ --user " $GITHUB_USER " \
240
234
--repo scope \
241
235
--tag latest_release \
242
236
--name " scope" \
0 commit comments