release.sh
1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
PROJECT=gitlab
RELEASE_BUCKET=downloads-packages
RELEASE_BUCKET_REGION=eu-west-1
function error_exit
{
echo "$0: fatal error: $1" 1>&2
exit 1
}
if !(git diff --quiet HEAD); then
error_exit 'uncommited changes'
fi
if !(git describe --exact-match); then
error_exit 'HEAD is not tagged'
fi
if !(bin/omnibus clean --purge ${PROJECT}); then
error_exit 'clean failed'
fi
if !(touch build.txt); then
error_exit 'failed to mark build start time'
fi
if !(OMNIBUS_APPEND_TIMESTAMP=0 bin/omnibus build project ${PROJECT}); then
error_exit 'build failed'
fi
release_package=$(find pkg/ -newer build.txt -type f -not -name '*.json')
if [[ -z ${release_package} ]]; then
error_exit 'could not find the release package'
fi
if (git describe | grep -w ee); then
release_dir="$(openssl rand -hex 20)"
if [[ $? -ne 0 ]]; then
error_exit 'failed to generate release directory name'
fi
remote_package_path="s3://${RELEASE_BUCKET}/${release_dir}/${release_package#pkg/}"
else
remote_package_path="s3://${RELEASE_BUCKET}/${release_package#pkg/}"
fi
echo
echo 'Package MD5:'
md5sum ${release_package}
echo
echo 'Starting upload'
if !(aws s3 cp ${release_package} ${remote_package_path} --acl public-read --region ${RELEASE_BUCKET_REGION}); then
error_exit 'release upload failed'
fi