Skip to content

build-daily

build-daily #527

Workflow file for this run

name: build-daily
on:
schedule:
- cron: '0 0 * * *'
# on:
# push:
# branches:
# - master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QT_VERSION: 6.8.*
QT_MODULES: 'qtcharts qtserialbus qtserialport qtwebsockets'
jobs:
update-tag:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update continuous tag
run: |
git config --global user.email "x-tools@outlook.com"
git config --global user.name "x-tools-author"
git tag -fa continuous -m "chore: update to latest commit"
git push origin :refs/tags/continuous
git push origin continuous -f
update-release:
runs-on: ubuntu-latest
needs: update-tag
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Delete Release
run: |
gh release delete continuous -y || true
- name: Create Release
run: |
gh release create continuous --title "Continuous Build" --notes "Daily build of xTools"
release-for-windows:
runs-on: windows-2022
needs: update-release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '${{ env.QT_VERSION }}'
target: 'desktop'
arch: 'win64_msvc2022_64'
dir: '${{ github.workspace }}'
modules: '${{env.QT_MODULES}}'
- name: Build for Windows
shell: cmd
run: |
git fetch --tags
mkdir build
cd build
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
cmake -DWITH_TOOLS:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_PREFIX_PATH='${{ github.workspace }}/Qt/${{env.QT_VERSION}}/win64_msvc2022_64' -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" ../
cmake --build . --target xTools
dir && dir .\assets && dir .\assets\xTools
- name: Upload Release Asset for Windnows
run: |
dir && gh release upload continuous 'build\assets\xtools-windows-amd64.zip'
release-for-linux:
runs-on: ubuntu-20.04
needs: update-release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
target: 'desktop'
arch: 'linux_gcc_64'
dir: ${{ github.workspace }}
modules: ${{env.QT_MODULES}}
- name: install-dependencies
run: |
sudo apt-get install -y libxcb-xinerama0 libxcb-cursor-dev
- name: Build for Linux
run: |
git fetch --tags
mkdir build
cd build
cmake ../ -DCMAKE_PREFIX_PATH='${{ github.workspace }}/Qt/${{env.QT_VERSION}}/linux_gcc_64' -DCMAKE_BUILD_TYPE:STRING=Release -DX_TOOLS_LINUX_MAKE_APP_IMAGE_XTOOLS:BOOL=TRUE -G "Unix Makefiles"
cmake --build . --target xTools
dir && dir ./assets && dir ./assets/xTools
- name: Upload Release Asset for Linux
run: |
dir && gh release upload continuous 'build/xtools-linux-x86_64.AppImage'
release-for-macos:
runs-on: macos-13
needs: update-release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Qt for macOS
uses: jurplel/install-qt-action@v4
with:
version: '${{env.QT_VERSION}}'
target: 'desktop'
arch: 'clang_64'
dir: ${{ github.workspace }}
modules: 'qtcharts qtserialbus qtserialport qtwebsockets'
- name: Build for macOS
# 278ERROR: no file at "/usr/local/opt/libiodbc/lib/libiodbc.2.dylib"
# brew unlink unixodbc
# brew install libiodbc
# ERROR: no file at "/Applications/Postgres.app/Contents/Versions/14/lib/libpq.5.dylib"
# ln -s /usr/local/Cellar/postgresql@14/14.10/lib/postgresql@14/libpq.5.14.dylib /Applications/Postgres.app/Contents/Versions/14/lib/libpq.5.dylib
run: |
git fetch --tags
# brew unlink unixodbc
# brew install libiodbc
mkdir -p /Applications/Postgres.app/Contents/Versions/14/lib
ln -s /usr/local/Cellar/postgresql@14/14.10/lib/postgresql@14/libpq.5.14.dylib /Applications/Postgres.app/Contents/Versions/14/lib/libpq.5.dylib
mkdir build
cd build
cmake ../ -DCMAKE_PREFIX_PATH='${{ github.workspace }}/Qt/${{env.QT_VERSION}}/clang_64/lib/cmake/Qt6' -DCMAKE_BUILD_TYPE:STRING=Release -G "Unix Makefiles"
cmake --build . --target xTools
ls && ls ./assets && ls ./assets/xTools
- name: Upload Release Asset for macOS
run: |
ls && gh release upload continuous 'build/assets/xTools/xtools-macos-13.dmg'
release-for-android:
runs-on: windows-2022
needs: update-release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Qt for Android
uses: jurplel/install-qt-action@v4
with:
target: android
arch: android_armv7
host: windows
dir: ${{ github.workspace }}
modules: ${{env.QT_MODULES}}
version: '${{env.QT_VERSION}}'
- name: Install Qt for Desktop(mingw)
uses: jurplel/install-qt-action@v4
with:
target: desktop
arch: win64_mingw
host: windows
dir: ${{ github.workspace }}
modules: ${{env.QT_MODULES}}
version: '${{env.QT_VERSION}}'
- name: CMake for Android
shell: cmd
run: |
git fetch --tags
set JAVA_HOME=%JAVA_HOME_11_X64%
${{ github.workspace }}\Qt\'${{env.QT_VERSION}}'\android_armv7\bin\qt-cmake.bat ^
-G "MinGW Makefiles" ^
-S . ^
-B "build\armeabi_v7a" ^
-DQT_HOST_PATH:PATH="${{ github.workspace }}\Qt\'${{env.QT_VERSION}}'\mingw_64" ^
-DCMAKE_BUILD_TYPE:STRING=Release ^
-DCMAKE_CXX_COMPILER:FILEPATH="%ANDROID_NDK_ROOT%/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe" ^
-DANDROID_SDK_ROOT:PATH="%ANDROID_SDK_ROOT%" ^
-DANDROID_NDK_ROOT:PATH="%ANDROID_NDK_ROOT%" ^
-DBUILD_SHARED_LIBS:BOOL=OFF ^
-DWITH_TOOLS:BOOL=OFF ^
-DWITHOUT_PNG:BOOL=ON
- name: Build for android
shell: cmd
run: |
set JAVA_HOME=%JAVA_HOME_11_X64%
echo %JAVA_HOME%
cmake --build build\armeabi_v7a --target xTools --config Release
- name: Copy File for Deploy
shell: cmd
run: |
mkdir build\armeabi_v7a\android-build\libs\armeabi-v7a
dir build\armeabi_v7a
copy .\build\armeabi_v7a\libxTools_armeabi-v7a.so .\build\armeabi_v7a\android-build\libs\armeabi-v7a /y
- name: Deploy for Android
shell: cmd
run: |
set JAVA_HOME=%JAVA_HOME_11_X64%
echo %JAVA_HOME%
${{ github.workspace }}\Qt\'${{env.QT_VERSION}}'\mingw_64\bin\androiddeployqt.exe ^
--input build\armeabi_v7a\android-xTools-deployment-settings.json ^
--output build\armeabi_v7a\android-build ^
--android-platform android-34 ^
--sign ${{ github.workspace }}\Resources\Platforms\Android\xTools.keystore xTools --storepass xTools --keypass xTools ^
--jdk %JAVA_HOME% --gradle --release
- name: Upload Release Asset for Android
run: |
cmake -E copy build/armeabi_v7a/android-build/build/outputs/apk/release/android-build-release-signed.apk xtools-android-armeabi_v7a.apk
ls && tree build/armeabi_v7a && gh release upload continuous xtools-android-armeabi_v7a.apk