Commit ee55ce8af623e5dcd34f6a08b703271f48025d09
1 parent
3678c50e
Exists in
master
and in
13 other branches
Rewrite release.sh as a Makefile
Showing
2 changed files
with
40 additions
and
55 deletions
Show diff stats
| @@ -0,0 +1,38 @@ | @@ -0,0 +1,38 @@ | ||
| 1 | +PROJECT=gitlab | ||
| 2 | +RELEASE_BUCKET=downloads-packages | ||
| 3 | +RELEASE_BUCKET_REGION=eu-west-1 | ||
| 4 | +SECRET_DIR:=$(shell openssl rand -hex 20) | ||
| 5 | + | ||
| 6 | +build: | ||
| 7 | + OMNIBUS_APPEND_TIMESTAMP=0 bin/omnibus build project ${PROJECT} | ||
| 8 | + | ||
| 9 | +release: no_changes on_tag purge build sync | ||
| 10 | + | ||
| 11 | +no_changes: | ||
| 12 | + git diff --quiet HEAD | ||
| 13 | + | ||
| 14 | +on_tag: | ||
| 15 | + git describe --exact-match | ||
| 16 | + | ||
| 17 | +purge: | ||
| 18 | + bin/omnibus clean --purge ${PROJECT} | ||
| 19 | + mkdir -p pkg | ||
| 20 | + (cd pkg && find . -delete) | ||
| 21 | + | ||
| 22 | +sync: remove_json move_ee_to_secret_dir md5 s3_sync | ||
| 23 | + | ||
| 24 | +remove_json: | ||
| 25 | + find pkg/ -name '*.json' -delete | ||
| 26 | + | ||
| 27 | +move_ee_to_secret_dir: | ||
| 28 | + if (git describe | grep -q -w ee); then \ | ||
| 29 | + mv pkg ${SECRET_DIR} \ | ||
| 30 | + && mkdir pkg \ | ||
| 31 | + && mv ${SECRET_DIR} pkg/ \ | ||
| 32 | + ; fi | ||
| 33 | + | ||
| 34 | +md5: | ||
| 35 | + find pkg -type f -exec md5sum {} \; | ||
| 36 | + | ||
| 37 | +s3_sync: | ||
| 38 | + aws s3 sync pkg/ s3://${RELEASE_BUCKET} --acl public-read --region ${RELEASE_BUCKET_REGION} |
release.sh
| 1 | -#!/bin/bash | ||
| 2 | -PROJECT=gitlab | ||
| 3 | -RELEASE_BUCKET=downloads-packages | ||
| 4 | -RELEASE_BUCKET_REGION=eu-west-1 | ||
| 5 | - | ||
| 6 | -function error_exit | ||
| 7 | -{ | ||
| 8 | - echo "$0: fatal error: $1" 1>&2 | ||
| 9 | - exit 1 | ||
| 10 | -} | ||
| 11 | - | ||
| 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 | - | ||
| 32 | -release_package=$(find pkg/ -newer build.txt -type f -not -name '*.json') | ||
| 33 | -if [[ -z ${release_package} ]]; then | ||
| 34 | - error_exit 'could not find the release package' | ||
| 35 | -fi | ||
| 36 | - | ||
| 37 | -if (git describe | grep -w ee); then | ||
| 38 | - release_dir="$(openssl rand -hex 20)" | ||
| 39 | - if [[ $? -ne 0 ]]; then | ||
| 40 | - error_exit 'failed to generate release directory name' | ||
| 41 | - fi | ||
| 42 | - remote_package_path="s3://${RELEASE_BUCKET}/${release_dir}/${release_package#pkg/}" | ||
| 43 | -else | ||
| 44 | - remote_package_path="s3://${RELEASE_BUCKET}/${release_package#pkg/}" | ||
| 45 | -fi | ||
| 46 | - | ||
| 47 | -echo | ||
| 48 | -echo 'Package MD5:' | ||
| 49 | -md5sum ${release_package} | ||
| 50 | - | ||
| 51 | -echo | ||
| 52 | -echo 'Starting upload' | ||
| 53 | -if !(aws s3 cp ${release_package} ${remote_package_path} --acl public-read --region ${RELEASE_BUCKET_REGION}); then | ||
| 54 | - error_exit 'release upload failed' | ||
| 55 | -fi | 1 | +#!/bin/sh |
| 2 | +make release |