2 # Copyright (C) The Arvados Authors. All rights reserved.
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" .
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"
21 local git_ts git_hash prefix
22 if [[ -n "$1" ]] ; then
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"
33 nohash_version_from_git() {
34 version_from_git $1 | cut -d. -f1-3
37 timestamp_from_git() {
38 format_last_commit_here "%ct"
41 WORKDIR="/tmp/workbench2"
43 if [[ -n "$2" ]]; then
46 build_version="$(version_from_git)"
48 rm -Rf $WORKDIR/node_modules
49 rm -f $WORKDIR/*.deb; rm -f $WORKDIR/*.rpm
50 # run test and build dist
54 # Build deb and rpm packages using fpm from dist passing the destination folder for the deploy to be /var/www/arvados-workbench2/
55 fpm -s dir -t deb -n arvados-workbench2 -v "$build_version" "--maintainer=Ward Vandewege <ward@curoverse.com>" --description "workbench2 Package" --config-files /etc/arvados/workbench2/workbench2.yml --deb-no-default-config-files $WORKDIR/dist/=/var/www/arvados-workbench2/ $WORKDIR/workbench2.yml=/etc/arvados/workbench2/workbench2.yml
56 fpm -s dir -t rpm -n arvados-workbench2 -v "$build_version" "--maintainer=Ward Vandewege <ward@curoverse.com>" --description "workbench2 Package" --config-files /etc/arvados/workbench2/workbench2.yml $WORKDIR/dist/=/var/www/arvados-workbench2/workbench2/ $WORKDIR/workbench2.yml=/etc/arvados/workbench2/workbench2.yml
58 mkdir $WORKDIR/packages
59 mkdir $WORKDIR/packages/centos7
60 mkdir $WORKDIR/packages/ubuntu1404
61 mkdir $WORKDIR/packages/ubuntu1604
62 mkdir $WORKDIR/packages/debian8
63 mkdir $WORKDIR/packages/debian9
64 cp $WORKDIR/*.rpm $WORKDIR/packages/centos7/
65 cp $WORKDIR/*.deb $WORKDIR/packages/ubuntu1404/
66 cp $WORKDIR/*.deb $WORKDIR/packages/ubuntu1604/
67 cp $WORKDIR/*.deb $WORKDIR/packages/debian8
68 cp $WORKDIR/*.deb $WORKDIR/packages/debian9