-
Notifications
You must be signed in to change notification settings - Fork 79
178 lines (170 loc) · 6.59 KB
/
build.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: Build
on:
pull_request:
push:
branches:
- "develop"
- "master"
jobs:
oldlinux-build:
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install build-essential cmake pkg-config libftgl-dev qtbase5-dev qttools5-dev librtmidi-dev fluid-soundfont-gm libfluidsynth-dev
- name: Install linuxdeploy
run: |
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy*.AppImage
- name: Define variables
run: |
pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2`
pb_app_name="PianoBooster-${pb_ver}-x86_64"
echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}"
- name: Build
env:
pb_app_name: ${{ env.PB_APP_NAME }}
run: |
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DQT_PACKAGE_NAME=Qt5
make -j$(nproc)
make install DESTDIR=AppDir
# Package
export QT_SELECT=5
export QML_SOURCES_PATHS="${GITHUB_WORKSPACE}"/src
# initialize AppDir, bundle shared libraries for PianoBooster, use Qt plugin to bundle additional resources, and build AppImage, all in one single command
../linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage
find .
echo "Done!"
chmod +x *AppImage
mv *AppImage ../${pb_app_name}.AppImage
cd ..
ls -lh ${pb_app_name}.AppImage
md5sum ${pb_app_name}.AppImage >checksum.txt
cat checksum.txt
- name: Upload Linux Build
uses: actions/upload-artifact@v2
with:
name: pianobooster-${{ env.PB_VERSION }}-linux-Qt5-ubuntu-20.04
path: |
${{ env.PB_APP_NAME }}.AppImage
checksum.txt
newlinux-build:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential cmake pkg-config libftgl-dev qt6-base-dev libqt6core5compat6-dev qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools librtmidi-dev fluid-soundfont-gm libfluidsynth-dev
sudo apt-get install libfuse2 qmake6
- name: Install linuxdeploy
run: |
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy*.AppImage
- name: Define variables
run: |
pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2`
pb_app_name="PianoBooster-${pb_ver}-x86_64"
echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}"
- name: Build
env:
pb_app_name: ${{ env.PB_APP_NAME }}
run: |
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DQT_PACKAGE_NAME=Qt6
make -j$(nproc)
make install DESTDIR=AppDir
# Package
export QT_SELECT=6
export QMAKE=/usr/lib/qt6/bin/qmake6
export QML_SOURCES_PATHS="${GITHUB_WORKSPACE}"/src
# initialize AppDir, bundle shared libraries for PianoBooster, use Qt plugin to bundle additional resources, and build AppImage, all in one single command
../linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage
find .
echo "Done!"
chmod +x *AppImage
mv *AppImage ../${pb_app_name}.AppImage
cd ..
ls -lh ${pb_app_name}.AppImage
md5sum ${pb_app_name}.AppImage >checksum.txt
cat checksum.txt
- name: Upload Linux Build
uses: actions/upload-artifact@v2
with:
name: pianobooster-${{ env.PB_VERSION }}-linux-Qt6-ubuntu-22.04
path: |
${{ env.PB_APP_NAME }}.AppImage
checksum.txt
macos-build:
runs-on: macos-11
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: |
brew install cmake qt@6 ftgl pkg-config fluid-synth
- name: Define variables
run: |
pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2`
pb_app_name="PianoBooster-${pb_ver}"
echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}"
- name: Build
env:
pb_app_name: ${{ env.PB_APP_NAME }}
run: |
mkdir build
cd build
export PKG_CONFIG_PATH="$(brew --prefix readline)/lib/pkgconfig:$PKG_CONFIG_PATH"
cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6);" -DQT_PACKAGE_NAME=Qt6
make
make install-translations
$(brew --prefix qt@6)/bin/macdeployqt build/pianobooster.app -dmg
find .
echo "Done!"
mv build/*dmg ../${pb_app_name}.dmg
cd ..
ls -lh ${pb_app_name}.dmg
md5 -r ${pb_app_name}.dmg > checksum.txt
cat checksum.txt
- name: Upload Mac Build
uses: actions/upload-artifact@v2
with:
name: pianobooster-${{ env.PB_VERSION }}-macos
path: |
${{ env.PB_APP_NAME }}.dmg
checksum.txt
# windows-build:
# runs-on: windows-latest
# steps:
# - name: Checkout
# uses: actions/[email protected]
# - name: Install dependencies
# uses: lukka/run-vcpkg@v4
# with:
# vcpkgDirectory: ${{ github.workspace }}/vcpkg
# vcpkgArguments: fluidsynth qt5-base qt5-tools freetype ftgl
# vcpkgGitUrl: 'https://github.com/microsoft/vcpkg.git'
# vcpkgGitCommitId: '56fffbe49dfb4dd8fae0940f272c5fd2b86be991'
# vcpkgTriplet: x64-windows
# - name:
# run: |
# mkdir build
# cd build
# cmake .. -DWITH_INTERNAL_FLUIDSYNTH=OFF -DCMAKE_TOOLCHAIN_FILE="${GITHUB_WORKSPACE}"/vcpkg/scripts/buildsystems/vcpkg.cmake
# cmake --build .
# find .
# shell: bash
#