diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cc41b37 --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +PROJECT=gitlab +RELEASE_BUCKET=downloads-packages +RELEASE_BUCKET_REGION=eu-west-1 +SECRET_DIR:=$(shell openssl rand -hex 20) + +build: + OMNIBUS_APPEND_TIMESTAMP=0 bin/omnibus build project ${PROJECT} + +release: no_changes on_tag purge build sync + +no_changes: + git diff --quiet HEAD + +on_tag: + git describe --exact-match + +purge: + bin/omnibus clean --purge ${PROJECT} + mkdir -p pkg + (cd pkg && find . -delete) + +sync: remove_json move_ee_to_secret_dir md5 s3_sync + +remove_json: + find pkg/ -name '*.json' -delete + +move_ee_to_secret_dir: + if (git describe | grep -q -w ee); then \ + mv pkg ${SECRET_DIR} \ + && mkdir pkg \ + && mv ${SECRET_DIR} pkg/ \ + ; fi + +md5: + find pkg -type f -exec md5sum {} \; + +s3_sync: + aws s3 sync pkg/ s3://${RELEASE_BUCKET} --acl public-read --region ${RELEASE_BUCKET_REGION} diff --git a/release.sh b/release.sh index 8754a61..29e4591 100755 --- a/release.sh +++ b/release.sh @@ -1,55 +1,2 @@ -#!/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 +#!/bin/sh +make release -- libgit2 0.21.2