Commit b28c062f0e6542aacd81fb3532b8818a05df5659
1 parent
3a9db618
Exists in
master
and in
17 other branches
Make error handling and control flow more verbose
Showing
1 changed file
with
27 additions
and
7 deletions
Show diff stats
release.sh
... | ... | @@ -9,13 +9,33 @@ function error_exit |
9 | 9 | exit 1 |
10 | 10 | } |
11 | 11 | |
12 | -git diff --quiet HEAD || error_exit 'uncommited changes' | |
13 | -git describe --exact-match || error_exit 'HEAD is not tagged' | |
14 | -bin/omnibus clean --purge ${PROJECT} || error_exit 'clean failed' | |
15 | -touch build.txt | |
16 | -OMNIBUS_APPEND_TIMESTAMP=0 bin/omnibus build project ${PROJECT} || error_exit 'build failed' | |
12 | +if !(git diff --quiet HEAD); then | |
13 | + error_exit 'uncommited changes' | |
14 | +fi | |
15 | + | |
16 | +if !(git describe --exact-match); then | |
17 | + error_exit 'HEAD is not tagged' | |
18 | +fi | |
19 | + | |
20 | +if !(bin/omnibus clean --purge ${PROJECT}); then | |
21 | + error_exit 'clean failed' | |
22 | +fi | |
23 | + | |
24 | +if !(touch build.txt); then | |
25 | + error_exit 'failed to mark build start time' | |
26 | +fi | |
27 | + | |
28 | +if !(OMNIBUS_APPEND_TIMESTAMP=0 bin/omnibus build project ${PROJECT}); then | |
29 | + error_exit 'build failed' | |
30 | +fi | |
31 | + | |
17 | 32 | release_package=$(find pkg/ -mnewer build.txt -type f -not -name '*.json') |
18 | 33 | if [[ -z ${release_package} ]]; then |
19 | - error_exit 'Could not find the release package' | |
34 | + error_exit 'could not find the release package' | |
20 | 35 | fi |
21 | -aws s3 cp ${release_package} s3://#{RELEASE_BUCKET} --acl public-read --region ${RELEASE_BUCKET_REGION} | |
36 | + | |
37 | +if !(aws s3 cp ${release_package} s3://#{RELEASE_BUCKET} --acl public-read --region ${RELEASE_BUCKET_REGION}); then | |
38 | + error_exit 'release upload failed' | |
39 | +fi | |
40 | + | |
41 | +echo "$0: package uploaded to https://${RELEASE_BUCKET}.s3.amazonaws.com/${release_package}" | ... | ... |