aboutsummaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-29 19:16:32 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-29 19:16:32 +0200
commitae85907fd307651dc52c3cf7d439c04882c24562 (patch)
treea67ce1d81a6e3a80ae80bc02d3a38ac681c8ec32 /ci
parent47373829babc4a1e2296efe4c8ae0770cfd47211 (diff)
downloadkristall-ae85907fd307651dc52c3cf7d439c04882c24562.tar.gz
Makes linux AppImage build reproducible with Docker.
Diffstat (limited to 'ci')
-rw-r--r--ci/.gitignore2
-rw-r--r--ci/Dockerfile16
-rwxr-xr-xci/compile.sh21
-rw-r--r--ci/docker-compose.yml6
4 files changed, 41 insertions, 4 deletions
diff --git a/ci/.gitignore b/ci/.gitignore
new file mode 100644
index 0000000..b97a986
--- /dev/null
+++ b/ci/.gitignore
@@ -0,0 +1,2 @@
+build/
+output/
diff --git a/ci/Dockerfile b/ci/Dockerfile
index 48e2a24..0475622 100644
--- a/ci/Dockerfile
+++ b/ci/Dockerfile
@@ -5,9 +5,21 @@ RUN apt-get install -y git
RUN apt-get install -y qt5-default qt5-qmake qtmultimedia5-dev
RUN apt-get install -y libqt5svg5-dev
RUN apt-get install -y libssl-dev make g++
+RUN apt-get install -y wget
+RUN apt-get install -y fuse
-COPY compile.sh /compile.sh
+RUN wget -O /usr/local/bin/linuxdeploy https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-$(uname -m).AppImage
+RUN chmod +x /usr/local/bin/linuxdeploy
+RUN file $(which linuxdeploy)
+
+RUN wget -O /usr/local/bin/linuxdeployqt https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-$(uname -m).AppImage
+RUN chmod +x /usr/local/bin/linuxdeployqt
+RUN file $(which linuxdeployqt)
VOLUME /artifacts
-ENTRYPOINT /compile.sh \ No newline at end of file
+ENTRYPOINT /compile.sh
+
+RUN apt-get install -y qttools5-dev-tools
+
+COPY compile.sh /compile.sh
diff --git a/ci/compile.sh b/ci/compile.sh
index b0392de..a2e7fe0 100755
--- a/ci/compile.sh
+++ b/ci/compile.sh
@@ -8,6 +8,25 @@ git clone https://github.com/MasterQ32/kristall /kristall
cd /kristall
-make
+make -j$(nproc)
+
+mkdir -p AppDir/usr/bin
+mkdir -p AppDir/usr/share/doc/libc6/
+
+make install DESTDIR=AppDir PREFIX=/usr/
+
+export VERSION=nightly
+
+# Create copyright notice that linuxdeployqt wants
+cp /usr/share/doc/libc6/copyright AppDir/usr/share/doc/libc6/copyright
+
+echo "Running linuxdeployqt"
+linuxdeployqt AppDir/usr/share/applications/Kristall.desktop -unsupported-allow-new-glibc -appimage
+
+echo "Running linuxdeploy"
+linuxdeploy --appdir AppDir --library=/usr/lib/x86_64-linux-gnu/libssl.so.1.1 --output=appimage
cp kristall /artifacts
+
+cp Kristall-nightly-$(uname -m).AppImage /artifacts/
+
diff --git a/ci/docker-compose.yml b/ci/docker-compose.yml
index 7879b2c..1ccff4a 100644
--- a/ci/docker-compose.yml
+++ b/ci/docker-compose.yml
@@ -3,4 +3,8 @@ services:
builder:
image: "kristall-ci:1.0"
volumes:
- - ./output:/artifacts \ No newline at end of file
+ - ./output:/artifacts
+ devices:
+ - /dev/fuse:/dev/fuse
+ cap_add:
+ - SYS_ADMIN \ No newline at end of file