Commit ee55ce8af623e5dcd34f6a08b703271f48025d09

Authored by Jacob Vosmaer
1 parent 3678c50e

Rewrite release.sh as a Makefile

Showing 2 changed files with 40 additions and 55 deletions   Show diff stats
Makefile 0 → 100644
... ... @@ -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
... ...