CI: cross-compilation; build packages on every push.
[tinc] / .ci / package / deb / build.sh
1 #!/bin/bash
2
3 set -euo 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 apt-get install -y devscripts git-buildpackage dh-make
17
18 export USER=${USER:-$(whoami)}
19
20 os="$ID-$VERSION_ID"
21 templates=$(dirname "$0")/debian
22
23 git clean -dfx
24
25 # get latest tag name
26 curr=$(find_tag HEAD)
27 [[ -z $curr ]] && bail 'could not determine release version'
28
29 # get previous tag name
30 prev=$(find_tag "$curr"^)
31 [[ -z $curr ]] && bail 'could not determine previous release version'
32
33 # strip release prefix to get the current version number
34 version=${curr//release-/}
35
36 # prepare a new debian directory
37 dh_make --yes --single --createorig --copyright gpl2 --packagename "tinc_$version-$os"
38
39 # write all commit messages between two most recent tags to the changelog
40 gbp dch --since "$prev" --ignore-branch --spawn-editor=never --release
41
42 # replace placeholders with files copied from https://packages.debian.org/experimental/tinc
43 cp "$templates/"* debian/
44
45 # remove useless READMEs created by dh_make
46 rm -f debian/README.*
47
48 dpkg-buildpackage -d -us -uc
49 mv ../*.deb .