changeset 1924:6ec18c2566e7

Attempt to thread the appimage build/test together
author Chris Cannam
date Tue, 03 Jul 2018 14:13:27 +0100
parents 4ec4c1b9d367
children b12e5a6be81f
files .hgignore deploy/linux/build-and-test-appimage.sh deploy/linux/docker/Dockerfile_appimage.in deploy/linux/docker/Dockerfile_appimage_tip deploy/linux/docker/Dockerfile_test_appimage.in
diffstat 5 files changed, 98 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Tue Jul 03 14:12:26 2018 +0100
+++ b/.hgignore	Tue Jul 03 14:13:27 2018 +0100
@@ -53,3 +53,5 @@
 glob:.repoint*
 build_win32
 build_win64
+*.AppImage
+*.AppDir
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/build-and-test-appimage.sh	Tue Jul 03 14:13:27 2018 +0100
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# Docker required
+
+set -eu
+
+current=$(hg id | awk '{ print $1; }')
+
+case "$current" in
+    *+) 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;;
+    *);;
+esac
+
+echo
+echo -n "Building appimage from revision $current..."
+
+dockerdir=deploy/linux/docker
+
+cat "$dockerdir"/Dockerfile_appimage.in | \
+    perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
+         "$dockerdir"/Dockerfile_appimage.gen
+
+cat "$dockerdir"/Dockerfile_test_appimage.in | \
+    perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
+         "$dockerdir"/Dockerfile_test_appimage.gen
+
+"$dockerdir"/build.sh appimage
+
+sudo docker build -f "$dockerdir"/Dockerfile_test_appimage.gen "$dockerdir"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/docker/Dockerfile_appimage.in	Tue Jul 03 14:13:27 2018 +0100
@@ -0,0 +1,59 @@
+# This pulls the latest versions of capnp & SV from repos - so you
+# will need to defeat the Docker cache by destroying the container
+# each time you want to update it
+#
+FROM ubuntu:14.04
+MAINTAINER Chris Cannam <cannam@all-day-breakfast.com>
+RUN apt-get update && \
+    apt-get install -y \
+    software-properties-common \
+    build-essential \
+    libbz2-dev \
+    libfftw3-dev \
+    libfishsound1-dev \
+    libid3tag0-dev \
+    liblo-dev \
+    liblrdf0-dev \
+    libmad0-dev \
+    liboggz2-dev \
+    libpulse-dev \
+    libasound2-dev \
+    libsamplerate-dev \
+    libsndfile-dev \
+    libsord-dev \
+    libxml2-utils \
+    libgl1-mesa-dev \
+    raptor-utils \
+    librubberband-dev \
+    git \
+    mercurial \
+    curl wget \
+    mlton \
+    autoconf automake libtool lintian
+
+# NB we do not install portaudio because it comes with a dependency on
+# the JACK library which we don't want to bundle and can't assume
+# people will have. Instead we rely on Pulse and (dynamically-loaded)
+# JACK support
+
+RUN apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty
+RUN apt-get update && \
+    apt-get install -y \
+    qt510base \
+    qt510svg
+RUN apt-get clean && rm -rf /var/lib/apt/lists/*
+RUN locale-gen en_US.UTF-8
+ENV LANG en_US.UTF-8  
+ENV LANGUAGE en_US:en  
+ENV LC_ALL en_US.UTF-8
+RUN hg clone -r[[REVISION]] https://code.soundsoftware.ac.uk/hg/sonic-visualiser
+RUN git clone https://github.com/sandstorm-io/capnproto
+WORKDIR capnproto/c++
+RUN ./setup-autotools.sh && autoreconf -i && ./configure && make && make install
+WORKDIR ../../sonic-visualiser
+ENV QTDIR /opt/qt510
+ENV PATH /opt/qt510/bin:$PATH
+RUN ./configure
+RUN make -j3
+RUN deploy/linux/deploy-appimage.sh
+RUN tar cvf output.tar *.AppImage && cp output.tar ..
--- a/deploy/linux/docker/Dockerfile_appimage_tip	Tue Jul 03 14:12:26 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-# This pulls the latest versions of capnp & SV from repos - so you
-# will need to defeat the Docker cache by destroying the container
-# each time you want to update it
-#
-FROM ubuntu:14.04
-MAINTAINER Chris Cannam <cannam@all-day-breakfast.com>
-RUN apt-get update && \
-    apt-get install -y \
-    software-properties-common \
-    build-essential \
-    libbz2-dev \
-    libfftw3-dev \
-    libfishsound1-dev \
-    libid3tag0-dev \
-    liblo-dev \
-    liblrdf0-dev \
-    libmad0-dev \
-    liboggz2-dev \
-    libpulse-dev \
-    libasound2-dev \
-    libsamplerate-dev \
-    libsndfile-dev \
-    libsord-dev \
-    libxml2-utils \
-    libgl1-mesa-dev \
-    raptor-utils \
-    librubberband-dev \
-    git \
-    mercurial \
-    curl wget \
-    mlton \
-    autoconf automake libtool lintian
-
-# NB we do not install portaudio because it comes with a dependency on
-# the JACK library which we don't want to bundle and can't assume
-# people will have. Instead we rely on Pulse and (dynamically-loaded)
-# JACK support
-
-RUN apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty
-RUN apt-get update && \
-    apt-get install -y \
-    qt510base \
-    qt510svg
-RUN apt-get clean && rm -rf /var/lib/apt/lists/*
-RUN locale-gen en_US.UTF-8
-ENV LANG en_US.UTF-8  
-ENV LANGUAGE en_US:en  
-ENV LC_ALL en_US.UTF-8
-RUN git clone https://github.com/sandstorm-io/capnproto
-WORKDIR capnproto/c++
-RUN ./setup-autotools.sh && autoreconf -i && ./configure && make && make install
-WORKDIR ../..
-RUN hg clone https://code.soundsoftware.ac.uk/hg/sonic-visualiser
-WORKDIR sonic-visualiser
-ENV QTDIR /opt/qt510
-ENV PATH /opt/qt510/bin:$PATH
-RUN ./configure
-RUN make -j3
-RUN deploy/linux/deploy-appimage.sh
-RUN tar cvf output.tar *.AppImage && cp output.tar ..
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/linux/docker/Dockerfile_test_appimage.in	Tue Jul 03 14:13:27 2018 +0100
@@ -0,0 +1,8 @@
+FROM centos:7
+RUN yum update
+RUN yum -y groupinstall "X Window System"
+RUN yum -y install wget
+ADD output/SonicVisualiser-[[REVISION]]-x86_64.AppImage SV.AppImage
+RUN chmod +x SV.AppImage
+RUN ./SV.AppImage --appimage-extract
+RUN ./squashfs-root/AppRun