Add unit tests suite using cmocka library
[tinc] / .ci / package / deb / build.sh
1 #!/bin/bash
2
3 set -euxo pipefail
4
5 . /etc/os-release
6
7 bail() {
8   echo >&2 "$@"
9   exit 1
10 }
11
12 find_tag() {
13   git describe --always --tags --match='release-*' "$@"
14 }
15
16 export DEBIAN_FRONTEND=noninteractive
17
18 apt-get install -y devscripts git-buildpackage dh-make
19
20 export USER=${USER:-$(whoami)}
21 export EMAIL=ci@tinc-vpn.org
22
23 os="$ID-${VERSION_ID:-unknown}"
24 templates=$(dirname "$0")/debian
25
26 git clean -dfx
27
28 # get latest tag name
29 curr=$(find_tag HEAD)
30 [[ -z $curr ]] && bail 'could not determine release version'
31
32 # get previous tag name
33 prev=$(find_tag "$curr"^)
34 [[ -z $curr ]] && bail 'could not determine previous release version'
35
36 # strip release prefix to get the current version number
37 version=${curr//release-/}
38
39 # prepare a new debian directory
40 dh_make --yes --single --createorig --copyright gpl2 --packagename "tinc_$version-$os"
41
42 # write all commit messages between two most recent tags to the changelog
43 gbp dch --since "$prev" --ignore-branch --spawn-editor=never --release
44
45 # replace placeholders with files copied from https://packages.debian.org/experimental/tinc
46 cp "$templates/"* debian/
47
48 # remove useless READMEs created by dh_make
49 rm -f debian/README.*
50
51 dpkg-buildpackage -rfakeroot -us -uc -b
52 mv ../*.deb .