Mercurial > hg > vamp-build-and-test
annotate SCRIPTS/dockerbuild.sh @ 133:4acb5d8d80b6 tip
Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author | Chris Cannam |
---|---|
date | Tue, 30 Jul 2019 12:25:44 +0100 |
parents | 3a8658f7e0b7 |
children |
rev | line source |
---|---|
Chris@128 | 1 #!/bin/bash |
Chris@128 | 2 # |
Chris@128 | 3 # Docker required! |
Chris@128 | 4 |
Chris@128 | 5 if [ -z "$1" ] || [ -z "$2" ]; then |
Chris@128 | 6 echo "Usage: $0 <repo> <repo-revision-id>" |
Chris@128 | 7 exit 2 |
Chris@128 | 8 fi |
Chris@128 | 9 |
Chris@128 | 10 platform=ubuntu1604 |
Chris@128 | 11 dockerfile=SCRIPTS/Dockerfile_$platform |
Chris@128 | 12 |
Chris@128 | 13 mkdir -p "PACKAGES/$platform" |
Chris@128 | 14 |
Chris@128 | 15 if [ ! -f "$dockerfile.in" ]; then |
Chris@128 | 16 echo "Docker file source $dockerfile.in not found (are we in the right directory?" |
Chris@128 | 17 exit 1 |
Chris@128 | 18 fi |
Chris@128 | 19 |
Chris@128 | 20 set -eu |
Chris@128 | 21 |
Chris@128 | 22 repo="$1" |
Chris@128 | 23 repo_revision="$2" |
Chris@128 | 24 |
Chris@128 | 25 current=$(hg id | awk '{ print $1; }') |
Chris@128 | 26 |
Chris@128 | 27 case "$current" in |
Chris@128 | 28 *+) echo "WARNING: Current working copy has been modified - build will check out the last commit, which must perforce be different";; |
Chris@128 | 29 *);; |
Chris@128 | 30 esac |
Chris@128 | 31 |
Chris@128 | 32 current=${current%%+} |
Chris@128 | 33 |
Chris@128 | 34 cat "$dockerfile.in" \ |
Chris@128 | 35 | perl -p -e 's/\[\[REVISION\]\]/'"$current"'/' \ |
Chris@128 | 36 | perl -p -e 's/\[\[REPO\]\]/'"$repo"'/' \ |
Chris@128 | 37 | perl -p -e 's/\[\[REPOREVISION\]\]/'"$repo_revision"'/' \ |
Chris@128 | 38 > "$dockerfile" |
Chris@128 | 39 |
Chris@128 | 40 dockertag="cannam/vamp-build-and-test-$current" |
Chris@128 | 41 |
Chris@128 | 42 sudo docker build -t "$dockertag" -f "$dockerfile" SCRIPTS |
Chris@128 | 43 |
Chris@128 | 44 container=$(sudo docker create "$dockertag") |
Chris@128 | 45 sudo docker cp "$container":vamp-build-and-test/PACKAGES/linux64/ "PACKAGES/$platform"/ |
Chris@128 | 46 sudo docker rm "$container" |
Chris@128 | 47 |
Chris@128 | 48 echo "Done!" |
Chris@128 | 49 |