annotate deploy/linux/build-and-test-appimage.sh @ 371:a0ff34e9e86b

First cut at Linux AppImage
author Chris Cannam
date Fri, 05 Jun 2020 11:08:37 +0100
parents
children
rev   line source
Chris@371 1 #!/bin/bash
Chris@371 2 #
Chris@371 3 # Docker required
Chris@371 4
Chris@371 5 set -eu
Chris@371 6
Chris@371 7 current=$(hg id | awk '{ print $1; }')
Chris@371 8
Chris@371 9 case "$current" in
Chris@371 10 *+) 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@371 11 *);;
Chris@371 12 esac
Chris@371 13
Chris@371 14 echo
Chris@371 15 echo "Building appimage from revision $current..."
Chris@371 16
Chris@371 17 dockerdir=deploy/linux/docker
Chris@371 18
Chris@371 19 cat "$dockerdir"/Dockerfile_appimage.in | \
Chris@371 20 perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
Chris@371 21 "$dockerdir"/Dockerfile_appimage.gen
Chris@371 22
Chris@371 23 cat "$dockerdir"/Dockerfile_test_appimage.in | \
Chris@371 24 perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
Chris@371 25 "$dockerdir"/Dockerfile_test_appimage.gen
Chris@371 26
Chris@371 27 fgrep 'hg.sr.ht' ~/.ssh/known_hosts > "$dockerdir"/known_hosts
Chris@371 28 cp ~/.ssh/id_rsa_build "$dockerdir"/id_rsa_build
Chris@371 29 chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_rsa_build
Chris@371 30 trap "rm $dockerdir/known_hosts $dockerdir/id_rsa_build" 0
Chris@371 31
Chris@371 32 dockertag="cannam/sonic-annotator-appimage-$current"
Chris@371 33
Chris@371 34 sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile_appimage.gen "$dockerdir"
Chris@371 35
Chris@371 36 outdir="$dockerdir/output"
Chris@371 37 mkdir -p "$outdir"
Chris@371 38
Chris@371 39 container=$(sudo docker create "$dockertag")
Chris@371 40
Chris@371 41 sudo docker cp "$container":output-appimage.tar "$outdir"
Chris@371 42 sudo docker rm "$container"
Chris@371 43
Chris@371 44 ( cd "$outdir" ; tar xf output-appimage.tar && rm -f output-appimage.tar )
Chris@371 45
Chris@371 46 sudo docker build -f "$dockerdir"/Dockerfile_test_appimage.gen "$dockerdir"