annotate deploy/linux/build-and-test-deb.sh @ 698:ee97c742d184 tip

Default branch is now named default on git as well as hg, in case we ever want to switch to mirroring in the other direction
author Chris Cannam
date Thu, 27 Aug 2020 15:58:43 +0100
parents cccac82528b9
children
rev   line source
Chris@622 1 #!/bin/bash
Chris@622 2 #
Chris@622 3 # Docker required
Chris@622 4
Chris@622 5 set -eu
Chris@622 6
Chris@622 7 current=$(hg id | awk '{ print $1; }')
Chris@622 8 release=$(perl -p -e 's/^[^"]*"([^"]*)".*$/$1/' version.h)
Chris@622 9
Chris@622 10 case "$current" in
Chris@622 11 *+) echo "ERROR: Current working copy has been modified - unmodified copy required so we know we can check it out separately and obtain the same contents"; exit 2;;
Chris@622 12 *);;
Chris@622 13 esac
Chris@622 14
Chris@622 15 echo
Chris@622 16 echo "Building Debian deb archive from revision $current..."
Chris@622 17
Chris@622 18 dockerdir=deploy/linux/docker
Chris@622 19
Chris@622 20 cat "$dockerdir"/Dockerfile_deb.in | \
Chris@622 21 perl -p -e "s/\[\[REVISION\]\]/$current/g" | \
Chris@622 22 perl -p -e "s/\[\[RELEASE\]\]/$release/g" > \
Chris@622 23 "$dockerdir"/Dockerfile_deb.gen
Chris@622 24
Chris@622 25 cat "$dockerdir"/Dockerfile_test_deb.in | \
Chris@622 26 perl -p -e "s/\[\[REVISION\]\]/$current/g" | \
Chris@622 27 perl -p -e "s/\[\[RELEASE\]\]/$release/g" > \
Chris@622 28 "$dockerdir"/Dockerfile_test_deb.gen
Chris@622 29
Chris@622 30 fgrep 'hg.sr.ht' ~/.ssh/known_hosts > "$dockerdir"/known_hosts
Chris@622 31 cp ~/.ssh/id_rsa_build "$dockerdir"/id_rsa_build
Chris@622 32 chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_rsa_build
Chris@622 33 trap "rm $dockerdir/known_hosts $dockerdir/id_rsa_build" 0
Chris@622 34
Chris@622 35 dockertag="cannam/tony-deb-$current"
Chris@622 36
Chris@622 37 sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile_deb.gen "$dockerdir"
Chris@622 38
Chris@622 39 outdir="$dockerdir/output"
Chris@622 40 mkdir -p "$outdir"
Chris@622 41
Chris@622 42 container=$(sudo docker create "$dockertag")
Chris@622 43
Chris@622 44 sudo docker cp "$container":output-deb.tar "$outdir"
Chris@622 45 sudo docker rm "$container"
Chris@622 46
Chris@622 47 ( cd "$outdir" ; tar xf output-deb.tar && rm -f output-deb.tar )
Chris@622 48
Chris@622 49 sudo docker build -f "$dockerdir"/Dockerfile_test_deb.gen "$dockerdir"