Merge pull request #12 from EstatoDeviato/master #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI build | |
on: [push] | |
env: | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- 5.15.2 | |
platform: | |
- gcc_64 | |
- android | |
- msvc2019 | |
- mingw81_32 | |
- clang_64 | |
include: | |
- platform: gcc_64 | |
os: ubuntu-latest | |
target: desktop | |
make: make | |
- platform: android | |
os: ubuntu-20.04 | |
target: android | |
make: make | |
- platform: msvc2019 | |
os: windows-2019 | |
target: desktop | |
make: nmake | |
- platform: mingw81_32 | |
os: windows-latest | |
target: desktop | |
arch: win32_mingw81 | |
tools: 'tools_mingw,qt.tools.win32_mingw810' | |
make: mingw32-make | |
- platform: clang_64 | |
os: macos-latest | |
target: desktop | |
make: make | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@master | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@master | |
with: | |
python-version: '3.10' | |
- name: Add msbuild to PATH | |
if: matrix.platform == 'msvc2019' | |
uses: microsoft/setup-msbuild@main | |
- name: Downgrade Android NDK | |
if: matrix.platform == 'android' | |
run: | | |
ANDROID_ROOT=/usr/local/lib/android | |
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk | |
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle | |
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager | |
echo "y" | $SDKMANAGER "ndk;21.4.7075529" | |
echo "y" | $SDKMANAGER "platforms;android-24" | |
# this is so stupid but i can't find anything else that works | |
rm -rf $ANDROID_HOME/ndk/25.2.9519653 | |
ln -sf $ANDROID_HOME/ndk/21.4.7075529 $ANDROID_HOME/ndk/25.2.9519653 | |
- uses: jurplel/install-qt-action@v3 | |
id: qt | |
with: | |
version: ${{matrix.version}} | |
target: ${{matrix.target}} | |
arch: ${{matrix.arch}} | |
tools: ${{matrix.tools}} | |
cache: true | |
cache-key-prefix: qt | |
- name: Add tools to PATH (MinGW) | |
if: matrix.platform == 'mingw81_32' | |
shell: bash | |
run: echo "$RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin" >> $GITHUB_PATH | |
- name: Configure MSVC (Windows) | |
if: contains(matrix.platform, 'msvc') | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Install QtApng | |
run: | | |
git clone https://github.com/Skycoder42/QtApng.git | |
cd QtApng | |
cd src/3rdparty | |
chmod +x get_libs.sh | |
./get_libs.sh 1.3.1 1.6.40 | |
cd ../.. | |
qmake CONFIG+=install_ok QMAKE_CXXFLAGS+="-fno-sized-deallocation" QT_PLATFORM=${{matrix.platform}} | |
${{matrix.make}} | |
${{matrix.make}} INSTALL_ROOT="${Qt5_DIR}" install | |
- name: Install Windows Discord RPC | |
if: contains(matrix.os, 'windows') | |
env: | |
ARCH: ${{ matrix.platform == 'msvc2019' && '64' || '32'}} | |
shell: bash | |
run: | | |
curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-win.zip -o discord_rpc.zip | |
unzip discord_rpc.zip | |
cp ./discord-rpc/win${ARCH}-dynamic/lib/discord-rpc.lib ./lib/ | |
cp ./discord-rpc/win${ARCH}-dynamic/bin/discord-rpc.dll ./bin/ | |
cp ./discord-rpc/win${ARCH}-dynamic/include/discord*.h ./include/ | |
- name: Install Linux Discord RPC | |
if: matrix.platform == 'gcc_64' | |
run: | | |
curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-linux.zip -o discord_rpc.zip | |
unzip discord_rpc.zip | |
cp ./discord-rpc/linux-dynamic/lib/libdiscord-rpc.so ./lib/ | |
cp ./discord-rpc/linux-dynamic/lib/libdiscord-rpc.so ./bin/ | |
cp ./discord-rpc/linux-dynamic/include/discord*.h ./include/ | |
- name: Install Mac Discord RPC | |
if: matrix.os == 'macos-latest' | |
run: | | |
curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-osx.zip -o discord_rpc.zip | |
unzip discord_rpc.zip | |
cp ./discord-rpc/osx-dynamic/lib/libdiscord-rpc.dylib ./lib/ | |
cp ./discord-rpc/osx-dynamic/lib/libdiscord-rpc.dylib ./bin/ | |
cp ./discord-rpc/osx-dynamic/include/discord*.h ./include/ | |
- name: Install Windows BASS | |
if: contains(matrix.os, 'windows') | |
env: | |
ARCH: ${{ matrix.platform == 'msvc2019' && '/x64/' || ''}} | |
shell: bash | |
run: | | |
curl http://www.un4seen.com/files/bass24.zip -o bass.zip | |
unzip -d bass -o bass.zip | |
cp ./bass/c/${ARCH}bass.lib ./lib/ | |
cp ./bass/${ARCH}bass.dll ./bin/ | |
curl http://www.un4seen.com/files/bassmidi24.zip -o bassmidi.zip | |
unzip -d bass -o bassmidi.zip | |
cp ./bass/c/${ARCH}bassmidi.lib ./lib/ | |
cp ./bass/${ARCH}bassmidi.dll ./bin/ | |
curl http://www.un4seen.com/files/bassopus24.zip -o bassopus.zip | |
unzip -d bass -o bassopus.zip | |
cp ./bass/c/${ARCH}bassopus.lib ./lib/ | |
cp ./bass/${ARCH}bassopus.dll ./bin/ | |
- name: Install Linux BASS | |
if: matrix.platform == 'gcc_64' | |
run: | | |
curl http://www.un4seen.com/files/bass24-linux.zip -o bass.zip | |
unzip -d bass -o bass.zip | |
cp ./bass/libs/x86_64/libbass.so ./lib/ | |
cp ./bass/libs/x86_64/libbass.so ./bin/ | |
curl http://www.un4seen.com/files/bassmidi24-linux.zip -o bassmidi.zip | |
unzip -d bass -o bassmidi.zip | |
cp ./bass/libs/x86_64/libbassmidi.so ./lib/ | |
cp ./bass/libs/x86_64/libbassmidi.so ./bin/ | |
curl http://www.un4seen.com/files/bassopus24-linux.zip -o bassopus.zip | |
unzip -d bass -o bassopus.zip | |
cp ./bass/libs/x86_64/libbassopus.so ./lib/ | |
cp ./bass/libs/x86_64/libbassopus.so ./bin/ | |
- name: Install Mac BASS | |
if: matrix.os == 'macos-latest' | |
run: | | |
curl http://www.un4seen.com/files/bass24-osx.zip -o bass.zip | |
unzip -d bass -o bass.zip | |
cp ./bass/libbass.dylib ./lib/ | |
cp ./bass/libbass.dylib ./bin/ | |
curl http://www.un4seen.com/files/bassmidi24-osx.zip -o bassmidi.zip | |
unzip -d bass -o bassmidi.zip | |
cp ./bass/libbassmidi.dylib ./lib/ | |
cp ./bass/libbassmidi.dylib ./bin/ | |
curl http://www.un4seen.com/files/bassopus24-osx.zip -o bassopus.zip | |
unzip -d bass -o bassopus.zip | |
cp ./bass/libbassopus.dylib ./lib/ | |
cp ./bass/libbassopus.dylib ./bin/ | |
- name: Install Android BASS | |
if: matrix.platform == 'android' | |
run: | | |
mkdir -p ./android/libs/armeabi-v7a/ | |
curl http://www.un4seen.com/files/bass24-android.zip -o bass.zip | |
unzip -o bass.zip -d bass | |
cp ./bass/libs/armeabi-v7a/libbass.so ./lib/ | |
unzip -o bass.zip "libs/*" -d "./android/libs/" | |
cp ./bass/libs/armeabi-v7a/libbass.so ./android/libs/armeabi-v7a/ | |
curl http://www.un4seen.com/files/bassmidi24-android.zip -o bassmidi.zip | |
unzip -d bass -o bassmidi.zip | |
cp ./bass/libs/armeabi-v7a/libbassmidi.so ./lib/ | |
unzip -o bassmidi.zip "libs/*" -d "./android/libs/" | |
cp ./bass/libs/armeabi-v7a/libbassmidi.so ./android/libs/armeabi-v7a/ | |
curl http://www.un4seen.com/files/bassopus24-android.zip -o bassopus.zip | |
unzip -d bass -o bassopus.zip | |
cp ./bass/libs/armeabi-v7a/libbassopus.so ./lib/ | |
unzip -o bassopus.zip "libs/*" -d "./android/libs/" | |
cp ./bass/libs/armeabi-v7a/libbassopus.so ./android/libs/armeabi-v7a/ | |
- name: qmake | |
if: matrix.platform != 'android' | |
run: | | |
qmake QMAKE_CXXFLAGS+="-fno-sized-deallocation" DEFINES+=DISCORD CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}} | |
- name: qmake android | |
if: matrix.platform == 'android' | |
run: | | |
qmake CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}} ANDROID_ABIS="armeabi-v7a" | |
- name: Copy libssl DLL (Windows) | |
if: contains(matrix.os, 'windows') | |
shell: bash | |
run: | | |
curl https://file.garden/ZVDWuDYwl0xAoRs4/libssl%203.4.1%20win32.zip -o libssl.zip | |
unzip -o libssl.zip -d ./bin/ | |
- name: build | |
run: | | |
${{matrix.make}} | |
- name: Deploy Windows | |
if: contains(matrix.os, 'windows') | |
working-directory: ${{github.workspace}}/bin/ | |
shell: bash | |
run: | | |
windeployqt --no-quick-import --no-translations --no-virtualkeyboard --no-compiler-runtime --no-webkit2 --no-opengl-sw . | |
cp ../QtApng/plugins/imageformats/qapng.dll ./imageformats/ | |
rm ./imageformats/qtiff.dll | |
rm ./imageformats/qicns.dll | |
rm ./imageformats/qico.dll | |
rm ./imageformats/qsvg.dll | |
rm ./imageformats/qtga.dll | |
rm ./imageformats/qwbmp.dll | |
rm ./Qt5Svg.dll | |
rm -r iconengines | |
rm -r bearer | |
rm -r base | |
- name: Copy MingW DLL | |
if: matrix.platform == 'mingw81_32' | |
working-directory: ${{github.workspace}}/bin/ | |
shell: bash | |
run: | | |
cp $RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin/libgcc_s_dw2-1.dll . | |
cp $RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin/libstdc++-6.dll . | |
cp $RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin/libwinpthread-1.dll . | |
- name: Deploy Linux | |
if: matrix.platform == 'gcc_64' | |
working-directory: ${{github.workspace}}/bin/ | |
shell: bash | |
run: | | |
cp ../scripts/launch.sh . | |
mkdir -p imageformats | |
cp ../QtApng/plugins/imageformats/libqapng.so ./imageformats/libqapng.so | |
chmod +x launch.sh | |
chmod +x Attorney_Online | |
tar -cf Attorney_Online.tar ./* | |
rm -rf imageformats | |
rm *.so | |
rm *.sh | |
rm Attorney_Online | |
- name: Deploy Mac | |
if: matrix.os == 'macos-latest' | |
working-directory: ${{github.workspace}}/bin/ | |
shell: bash | |
run: | | |
macdeployqt Attorney_Online.app | |
cp ../QtApng/plugins/imageformats/libqapng.dylib ./Attorney_Online.app/Contents/PlugIns/imageformats/ | |
mv *.dylib ./Attorney_Online.app/Contents/Frameworks | |
install_name_tool -change @loader_path/libbass.dylib @rpath/libbass.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online | |
install_name_tool -change @loader_path/libbassopus.dylib @rpath/libbassopus.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online | |
install_name_tool -change @loader_path/libbassmidi.dylib @rpath/libbassmidi.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online | |
install_name_tool -change @loader_path/libdiscord-rpc.dylib @rpath/libdiscord-rpc.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online | |
install_name_tool -change @loader_path/libqapng.dylib @rpath/libqapng.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online | |
hdiutil create -volname "Attorney_Online" -srcfolder "./Attorney_Online.app" -ov -format UDZO "Attorney_Online.dmg" | |
rm -r ./Attorney_Online.app/ | |
- name: Deploy Android | |
if: matrix.platform == 'android' | |
working-directory: ${{github.workspace}}/ | |
shell: bash | |
run: | | |
mkdir -p ./build/libs/armeabi-v7a/ | |
mv ./bin/*.so ./build/libs/armeabi-v7a/ | |
cp ./QtApng/plugins/imageformats/libplugins_imageformats_qapng_armeabi-v7a.so ./build/libs/armeabi-v7a/ | |
androiddeployqt --android-platform android-24 --input android-Attorney_Online-deployment-settings.json --output ./build/ --apk ./bin/AttorneyOnline.apk | |
- name: Upload Artifact | |
uses: actions/upload-artifact@master | |
with: | |
name: Attorney_Online-${{matrix.os}}-${{matrix.platform}} | |
path: ${{github.workspace}}/bin/ |