Makes linux AppImage build reproducible with Docker.

This commit is contained in:
Felix (xq) Queißner 2020-06-29 19:16:32 +02:00
parent 47373829ba
commit ae85907fd3
4 changed files with 41 additions and 4 deletions

2
ci/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
build/
output/

View File

@ -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
ENTRYPOINT /compile.sh
RUN apt-get install -y qttools5-dev-tools
COPY compile.sh /compile.sh

View File

@ -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/

View File

@ -3,4 +3,8 @@ services:
builder:
image: "kristall-ci:1.0"
volumes:
- ./output:/artifacts
- ./output:/artifacts
devices:
- /dev/fuse:/dev/fuse
cap_add:
- SYS_ADMIN