forked from muse-sequencer/muse
-
Notifications
You must be signed in to change notification settings - Fork 0
178 lines (153 loc) · 6.83 KB
/
appimage_release.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
172
173
174
175
176
177
178
name: Create AppImage for release
on:
workflow_dispatch:
inputs:
tag:
description: 'Release tag'
default: '4.0.0'
required: true
#on: push
# push:
# tags:
# - 'muse_*'
# - '!muse_*_pre*'
env:
BUILD_TYPE: Release
TAG: ${{ github.event.inputs.tag }}
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
ref: ${{ env.TAG }}
- name: Install Deps
run: |
sudo add-apt-repository ppa:beineri/opt-qt-5.15.2-bionic
sudo apt-get update
sudo apt-get install libsndfile1-dev
sudo apt-get install libsamplerate0-dev
sudo apt-get install libjack-jackd2-dev
sudo apt-get install ladspa-sdk
sudo apt-get install liblo-dev
sudo apt-get install dssi-dev
sudo apt-get install libsamplerate0-dev
sudo apt-get install libfluidsynth-dev
sudo apt-get install libgtkmm-2.4-dev
sudo apt-get install libinstpatch-dev
sudo apt-get install liblash-compat-dev
sudo apt-get install librubberband-dev
sudo apt-get install python3-dev
sudo apt-get install librtaudio-dev
# liblilv-dev lv2-dev liblrdf0-dev
# sudo apt-get install qt5-default qttools5-dev qttools5-dev-tools libqt5svg5-dev
sudo apt-get install mesa-common-dev libglu1-mesa-dev
sudo apt-get install qt515base qt515tools qt515svg
sudo apt-get remove 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 DESTDIR=appdir install ; find appdir/
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=${{ env.TAG }}
./linuxdeploy-plugin-appimage-x86_64.AppImage --appdir appdir
- name: Upload AppImage
uses: actions/upload-artifact@v2
with:
name: AppImage release
path: ${{runner.workspace}}/build/MusE-*-x86_64.AppImage