diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..a5605263 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,255 @@ +name: 'Deploy workflow' + +on: [push] + +jobs: + Build-Linux-Ubuntu: + name: 'Build-Linux-Ubuntu' + runs-on: ubuntu-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + + steps: + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'linux' + target: 'desktop' + arch: 'gcc_64' + dir: ${{ runner.temp }} + setup-python: 'true' + tools: 'tools_ifw' + set-env: 'true' + extra: '--external 7z' + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Build project' + run: | + export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/gcc_64/bin + export QIF_BIN_DIR=${{ runner.temp }}/Qt/Tools/QtInstallerFramework/${{ env.QIF_VERSION }}/bin + bash deploy/build_linux.sh + +# ------------------------------------------------------ + + Build-Windows: + name: Build-Windows + runs-on: windows-latest + continue-on-error: true + + strategy: + matrix: + arch: [32, 64] + include: + - qt-arch: 'win32_msvc2019' + arch: 32 + - qt-msvc-path: 'msvc2019' + arch: 32 + - msvc-arch: 'x86' + arch: 32 + - qt-arch: 'win64_msvc2019_64' + arch: 64 + - qt-msvc-path: 'msvc2019_64' + arch: 64 + - msvc-arch: 'x64' + arch: 64 + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + BUILD_ARCH: ${{ matrix.arch }} + + steps: + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'windows' + target: 'desktop' + arch: '${{ matrix.qt-arch }}' + dir: ${{ runner.temp }} + setup-python: 'true' + tools: 'tools_ifw' + set-env: 'true' + extra: '--external 7z' + + - name: 'Setup mvsc' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.msvc-arch }} + + - name: 'Build project' + shell: cmd + run: | + set BUILD_ARCH=${{ env.BUILD_ARCH }} + set QT_BIN_DIR="${{ runner.temp }}\\Qt\\${{ env.QT_VERSION }}\\${{ matrix.qt-msvc-path }}\\bin" + set QIF_BIN_DIR="${{ runner.temp }}\\Qt\\Tools\\QtInstallerFramework\\${{ env.QIF_VERSION }}\\bin" + call deploy\\build_windows.bat + +# ------------------------------------------------------ + + Build-IOS: + name: 'Build-IOS' + runs-on: macos-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.4 + + steps: + - name: 'Setup xcode' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '13.4' + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'mac' + target: 'ios' + dir: ${{ runner.temp }} + setup-python: 'true' + set-env: 'true' + extra: '--external 7z' + + - name: 'Install go' + uses: actions/setup-go@v3 + + - name: 'Setup gomobile' + run: | + export PATH=$PATH:~/go/bin + go install golang.org/x/mobile/cmd/gomobile@latest + gomobile init + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Build project' + run: | + export QT_BIN_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/ios/bin" + export QT_IOS_BIN=$QT_BIN_DIR + export PATH=$PATH:~/go/bin + bash deploy/build_ios.sh + +# ------------------------------------------------------ + + Build-MacOS: + name: 'Build-MacOS' + runs-on: macos-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + + steps: + - name: 'Setup xcode' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '13.4' + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'mac' + target: 'desktop' + arch: 'clang_64' + dir: ${{ runner.temp }} + setup-python: 'true' + tools: 'tools_ifw' + set-env: 'true' + extra: '--external 7z' + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Build project' + run: | + export QT_BIN_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/clang_64/bin" + export QIF_BIN_DIR="${{ runner.temp }}/Qt/Tools/QtInstallerFramework/${{ env.QIF_VERSION }}/bin" + bash deploy/build_macos.sh + +# ------------------------------------------------------ + + Build-Android: + name: 'Build-Android' + runs-on: ubuntu-latest + + env: + QT_VERSION: 5.15.2 + QIF_VERSION: 4.5 + + steps: + - name: 'Install Qt' + uses: jurplel/install-qt-action@v3 + with: + version: ${{ env.QT_VERSION }} + host: 'linux' + target: 'android' + arch: 'android' + dir: ${{ runner.temp }} + setup-python: 'true' + set-env: 'true' + extra: '--external 7z' + + - name: 'Get sources' + uses: actions/checkout@v3 + with: + submodules: 'true' + fetch-depth: 10 + + - name: 'Setup ccache' + uses: hendrikmuhs/ccache-action@v1.2 + + - name: 'Setup Java' + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '8' + + - name: 'Build project' + run: | + export NDK_VERSION=21d + export ANDROID_NDK_PLATFORM=android-21 + export ANDROID_NDK_HOME=${{ runner.temp }}/android-ndk-r${NDK_VERSION} + export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME + + if [ ! -f $ANDROID_NDK_ROOT/ndk-build ]; then + wget https://dl.google.com/android/repository/android-ndk-r${NDK_VERSION}-linux-x86_64.zip -qO ${{ runner.temp }}/ndk.zip && + unzip -q -d ${{ runner.temp }} ${{ runner.temp }}/ndk.zip ; + fi + + export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/android/bin + bash deploy/build_android.sh \ No newline at end of file diff --git a/deploy/build_windows.bat b/deploy/build_windows.bat index c82a54ee..b58c4286 100644 --- a/deploy/build_windows.bat +++ b/deploy/build_windows.bat @@ -92,7 +92,7 @@ dir %OUT_APP_DIR% cd %OUT_APP_DIR% echo "Compressing data..." -"%QIF_BIN_DIR:"=%\archivegen" -c 9 %INSTALLER_DATA_DIR:"=%\%APP_NAME:"=%.7z ./ +"%QIF_BIN_DIR:"=%\archivegen" -c 9 %INSTALLER_DATA_DIR:"=%\%APP_NAME:"=%.7z . cd "%RELEASE_DIR:"=%\installer" echo "Creating installer..."