-
Notifications
You must be signed in to change notification settings - Fork 71
171 lines (145 loc) · 6.82 KB
/
appimage_latest.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
name: Create AppImage latest
#on: workflow_dispatch
on:
push:
branches:
- master
#on:
# schedule:
# - cron: '0 7 * * MON'
env:
BUILD_TYPE: Release
jobs:
latest:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install Deps
run: |
#sudo add-apt-repository -y ppa:beineri/opt-qt-5.15.2-bionic
sudo apt-get update
# See PR 1077. Required to find libatomic for some archs.
sudo apt-get install -y cmake extra-cmake-modules
sudo apt-get install -y libsndfile1-dev libsamplerate0-dev \
libjack-jackd2-dev ladspa-sdk liblo-dev dssi-dev \
libsamplerate0-dev libfluidsynth-dev libgtkmm-2.4-dev \
libinstpatch-dev librubberband-dev python3-dev librtaudio-dev liblrdf0-dev
# liblash-compat-dev
# liblilv-dev lv2-dev liblrdf0-dev
sudo apt-get install -y qttools5-dev qttools5-dev-tools libqt5svg5-dev
sudo apt-get install -y mesa-common-dev libglu1-mesa-dev
#sudo apt-get install -y qt515base qt515tools qt515svg
sudo apt-get install -y fuse
sudo apt-get remove -y libsord-0-0 libserd-0-0
# wget http://mirrors.kernel.org/ubuntu/pool/universe/r/rtaudio/librtaudio6_5.0.0~ds-2_amd64.deb
# wget http://mirrors.kernel.org/ubuntu/pool/universe/r/rtaudio/librtaudio-dev_5.0.0~ds-2_amd64.deb
# sudo apt-get install ./librtaudio6_5.0.0~ds-2_amd64.deb ./librtaudio-dev_5.0.0~ds-2_amd64.deb
- name: Build lv2
run: |
mkdir ${{runner.workspace}}/lv2_build
cd ${{runner.workspace}}/lv2_build
git clone --depth 1 --branch v1.18.0 https://gitlab.com/lv2/lv2.git .
git submodule update --init --recursive
./waf configure
./waf
sudo ./waf install
- name: Build serd
run: |
mkdir ${{runner.workspace}}/serd_build
cd ${{runner.workspace}}/serd_build
git clone --depth 1 --branch v0.30.6 https://gitlab.com/drobilla/serd.git .
git submodule update --init --recursive
./waf configure
./waf
sudo ./waf install
- name: Build sord
run: |
mkdir ${{runner.workspace}}/sord_build
cd ${{runner.workspace}}/sord_build
git clone --depth 1 --branch v0.16.6 https://gitlab.com/drobilla/sord.git .
git submodule update --init --recursive
./waf configure
./waf
sudo ./waf install
- name: Build sratom
run: |
mkdir ${{runner.workspace}}/sratom_build
cd ${{runner.workspace}}/sratom_build
git clone --depth 1 --branch v0.6.6 https://gitlab.com/lv2/sratom.git .
git submodule update --init --recursive
./waf configure
./waf
sudo ./waf install
- name: Build lilv
run: |
mkdir ${{runner.workspace}}/lilv_build
cd ${{runner.workspace}}/lilv_build
git clone --depth 1 --branch v0.24.10 https://gitlab.com/lv2/lilv.git .
git submodule update --init --recursive
./waf configure
./waf
sudo ./waf install
- name: Check Qt Installation
run: |
#cat /opt/qt515/bin/qt515-env.sh
QT_BASE_DIR=/opt/qt515
export QTDIR=$QT_BASE_DIR
export PATH=$QT_BASE_DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
echo "$PATH" >> $GITHUB_PATH
echo "QT_BASE_DIR=$QT_BASE_DIR" >> $GITHUB_ENV
echo "QTDIR=$QT_BASE_DIR" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
run: |
REPO_PATH=$GITHUB_WORKSPACE/src
cmake $REPO_PATH -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX=/usr -DMODULES_BUILD_STATIC=ON
- name: Build
working-directory: ${{runner.workspace}}/build
run:
cmake --build . --config $BUILD_TYPE -j3
- name: Create AppImage
working-directory: ${{runner.workspace}}/build
run: |
make -j3 DESTDIR=appdir install ; find appdir/
find appdir \( -name "moc_*" -or -name "*.o" -or -name "qrc_*" -or -name "Makefile*" -or -name "*.a" \) -exec rm {} \;
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
wget -c "https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh"
wget https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
chmod +x linuxdeploy*.AppImage linuxdeploy-plugin-gtk.sh
export MUSEDIR=$(basename -a ${{runner.workspace}}/build/appdir/usr/lib/muse-*)
LIB_MODULES=${{runner.workspace}}/build/appdir/usr/lib/$MUSEDIR/modules
LIB_PLUGINS=${{runner.workspace}}/build/appdir/usr/lib/$MUSEDIR/plugins
LIB_SYNTHI=${{runner.workspace}}/build/appdir/usr/lib/$MUSEDIR/synthi
LIB_CONV=${{runner.workspace}}/build/appdir/usr/lib/$MUSEDIR/converters
export LD_LIBRARY_PATH=$LIB_MODULES:$LIB_PLUGINS:$LIB_SYNTHI:$LIB_CONV:$LD_LIBRARY_PATH
# install GTK library dependencies for LV2 uis
sudo apt install patchelf
sudo apt install libgtk2.0-dev
sudo apt install libglib2.0-dev
sudo apt install librsvg2-dev
export DEPLOY_GTK_VERSION=2
./linuxdeploy-x86_64.AppImage --appdir appdir --plugin=gtk
# install QT library dependencies for MusE
./linuxdeploy-x86_64.AppImage --appdir appdir --plugin=qt
echo '#! /usr/bin/env bash' > appdir/AppRun
echo 'set -e' >> appdir/AppRun
echo 'this_dir=$(readlink -f $(dirname "$0"))' >> appdir/AppRun
echo 'export LD_LIBRARY_PATH="$this_dir"/usr/lib:$LD_LIBRARY_PATH' >> appdir/AppRun
echo 'exec "$this_dir"/AppRun.wrapped "$@"' >> appdir/AppRun
export VERSION=master #linuxdeployqt uses this for naming the file
./linuxdeploy-plugin-appimage-x86_64.AppImage --appdir appdir
- name: Upload AppImage
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
prerelease: true
title: "Current master (AppImage)"
files: ${{runner.workspace}}/build/MusE*.AppImage