refs #13545 Merge branch '13545-projects-service'
[arvados-workbench2.git] / run-tests-build.sh
1 #!/bin/bash -x
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5 # The script uses the docker image composer-build:latest
6 # Usage docker run -ti -v /var/lib/jenkins/workspace/build-packages-workbench2/:/tmp/workbench2 composer-build:latest /tmp/workbench2/run-tests-build.sh --build_version 1.0.1
7 format_last_commit_here() {
8     local format="$1"; shift
9     TZ=UTC git log -n1 --first-parent "--format=format:$format" .
10 }
11
12 version_from_git() {
13     # Output the version being built, or if we're building a
14     # dev/prerelease, output a version number based on the git log for
15     # the current working directory.
16     if [[ -n "$ARVADOS_BUILDING_VERSION" ]]; then
17         echo "$ARVADOS_BUILDING_VERSION"
18         return
19     fi
20
21     local git_ts git_hash prefix
22     if [[ -n "$1" ]] ; then
23         prefix="$1"
24     else
25         prefix="0.1"
26     fi
27
28     declare $(format_last_commit_here "git_ts=%ct git_hash=%h")
29     ARVADOS_BUILDING_VERSION="$(git describe --abbrev=0).$(date -ud "@$git_ts" +%Y%m%d%H%M%S)"
30     echo "$ARVADOS_BUILDING_VERSION"
31
32
33 nohash_version_from_git() {
34     version_from_git $1 | cut -d. -f1-3
35 }
36
37 timestamp_from_git() {
38     format_last_commit_here "%ct"
39 }
40
41 WORKDIR="/tmp/workbench2"
42 cd $WORKDIR
43 if [[ -n "$2" ]]; then
44     build_version="$2"
45 else
46     build_version="$(version_from_git)"
47 fi
48 rm -Rf $WORKDIR/node_modules
49 rm -f $WORKDIR/*.deb; rm -f $WORKDIR/*.rpm
50 # run test and build dist 
51 make test
52 #make build
53 yarn build
54
55 # Build deb and rpm packages using fpm from dist passing the destination folder for the deploy to be /var/www/arvados-workbench2/
56 fpm -s dir -t deb  -n arvados-workbench2 -v "$build_version" "--maintainer=Ward Vandewege <ward@curoverse.com>" --description "workbench2 Package" --deb-no-default-config-files $WORKDIR/build/=/var/www/arvados-workbench2/workbench2/
57 fpm -s dir -t rpm  -n arvados-workbench2 -v "$build_version" "--maintainer=Ward Vandewege <ward@curoverse.com>" --description "workbench2 Package" $WORKDIR/build/=/var/www/arvados-workbench2/workbench2/
58
59 mkdir $WORKDIR/packages
60 mkdir $WORKDIR/packages/centos7
61 mkdir $WORKDIR/packages/ubuntu1404
62 mkdir $WORKDIR/packages/ubuntu1604
63 mkdir $WORKDIR/packages/debian8
64 mkdir $WORKDIR/packages/debian9
65 cp $WORKDIR/*.rpm $WORKDIR/packages/centos7/
66 cp $WORKDIR/*.deb $WORKDIR/packages/ubuntu1404/
67 cp $WORKDIR/*.deb $WORKDIR/packages/ubuntu1604/
68 cp $WORKDIR/*.deb $WORKDIR/packages/debian8
69 cp $WORKDIR/*.deb $WORKDIR/packages/debian9