atrooney-online-2/.github/workflows/build.yml
stonedDiscord d87371b65e
GitHub android ci (#767)
* try this matrix thing

* syntax error

* use my own qt installer so it actually works

* allow changing path

* whoops cant have it twice

* get the right version of discord rpc

* get correct bass

* try to fix windows

* overwrite bass files

* forgot to delete these

* here's your version bro

* what did we even use catch2 for??

* linux doesnt have a c folder

* android bass

* switch from cmake to qmake

* opus dylib

* we don't install

* put bass in a subfolder so we don't build the stupid examples

* was using wrong arch for android

* fix up gitignore

* get correct artifact folder

* lets hope qmake will ignore the ABI for all the other platforms

* use platform name for artifact

* copy dlls into bin folder

* lmao i yeeted the folder

* create folder

* use more recent mingw

* windows uses dlls

* 2017 doesn't work

* our libs are 64 bit

* install msvc

* shitty ms documentation

* ok ms

* wrong directory for deploy

* copy apng

* use correct image for msvc2019

* deploy android

* 32bit windows it is

* adroideploy

* try this

* Update build.yml

* move libs

* armeabi-v7a

* fix android build files

* only get linux bass for linux

* don't try to install discord on android

* deploy mac

* get rid of double permission warning

* define filename for APK

* add mac dependencies

* put android bass in the correct folder

* mac apng

* android apng

* remove old CI

* ask for storage permissions

* qt bug ..........

* update clang-tidy-review

* update everything

* fuck you lukka

* fuck you jurplel for merging that shitty PR that broke everything

* give it what it wants

* Update clang-tidy-review.yml

* github is failing it because it's too big

* wait for the user and request a proper permission string

* underscore moment

* use write external storage instead

* try this instead

* 082 fails with docker again
2022-05-24 21:16:04 +02:00

214 lines
8.0 KiB
YAML

name: CI build
on: [push]
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
jobs:
build:
strategy:
fail-fast: false
matrix:
version:
- 5.15.1
platform:
- gcc_64
- android
- msvc2019
- mingw81_32
- clang_64
include:
- platform: gcc_64
os: ubuntu-latest
- platform: android
os: ubuntu-latest
- platform: msvc2019
os: windows-2019
- platform: mingw81_32
os: windows-latest
- platform: clang_64
os: macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@master
with:
submodules: recursive
- uses: actions/setup-python@master
- name: actions/cache qt
uses: actions/cache@master
id: cache
with:
path: qt/${{matrix.version}}/${{matrix.platform}}
key: qt-${{matrix.version}}-${{matrix.platform}}
- name: Add msbuild to PATH
if: matrix.platform == 'msvc2019'
uses: microsoft/setup-msbuild@master
- uses: stonedDiscord/action-setup-qt@master
id: qt
with:
version: 5.15.1
platform: ${{matrix.platform}}
- name: Install QtApng
run: |
git clone https://github.com/Skycoder42/QtApng.git
cd QtApng
qmake CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}}
${{steps.qt.outputs.make}} qmake_all
${{steps.qt.outputs.make}}
${{steps.qt.outputs.make}} INSTALL_ROOT="${{steps.qt.outputs.installdir}}" install
- name: Create bin folder
run: |
mkdir bin
- name: Install Windows Discord RPC
if: contains(matrix.os, 'windows')
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/win32-dynamic/lib/discord-rpc.lib ./lib/
cp ./discord-rpc/win32-dynamic/bin/discord-rpc.dll ./bin/
- 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/
- 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/
- name: Install Windows BASS
if: contains(matrix.os, 'windows')
run: |
curl http://www.un4seen.com/files/bass24.zip -o bass.zip
unzip -d bass -o bass.zip
cp ./bass/c/bass.lib ./lib/
cp ./bass/bass.dll ./bin/
curl http://www.un4seen.com/files/bassmidi24.zip -o bassmidi.zip
unzip -d bass -o bassmidi.zip
cp ./bass/c/bassmidi.lib ./lib/
cp ./bass/bassmidi.dll ./bin/
curl http://www.un4seen.com/files/bassopus24.zip -o bassopus.zip
unzip -d bass -o bassopus.zip
cp ./bass/c/bassopus.lib ./lib/
cp ./bass/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/x64/libbass.so ./lib/
cp ./bass/x64/libbass.so ./bin/
curl http://www.un4seen.com/files/bassmidi24-linux.zip -o bassmidi.zip
unzip -d bass -o bassmidi.zip
cp ./bass/x64/libbassmidi.so ./lib/
cp ./bass/x64/libbassmidi.so ./bin/
curl http://www.un4seen.com/files/bassopus24-linux.zip -o bassopus.zip
unzip -d bass -o bassopus.zip
cp ./bass/x64/libbassopus.so ./lib/
cp ./bass/x64/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 ./android/libs/
mkdir ./android/libs/armeabi-v7a/
curl http://www.un4seen.com/files/bass24-android.zip -o bass.zip
unzip -d bass -o bass.zip
cp ./bass/libs/armeabi-v7a/libbass.so ./lib/
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/
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/
cp ./bass/libs/armeabi-v7a/libbassopus.so ./android/libs/armeabi-v7a/
- name: qmake
run: |
qmake CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}} ANDROID_ABIS="armeabi-v7a"
- name: build
run: |
${{steps.qt.outputs.make}}
- name: Deploy Windows
if: contains(matrix.os, 'windows')
working-directory: ${{github.workspace}}/bin/
shell: bash
run: |
windeployqt .
cp ../QtApng/plugins/imageformats/qapng.dll ./imageformats/
- 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
- name: Deploy Android
if: matrix.platform == 'android'
working-directory: ${{github.workspace}}/
shell: bash
run: |
mkdir ./build/libs/
mkdir ./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 --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.platform}}
path: ${{github.workspace}}/bin/