From 3dd897d57650b145e8cdf54e534391cb97cfb6f2 Mon Sep 17 00:00:00 2001 From: Ghost Fox Date: Tue, 14 Oct 2025 02:37:03 +0200 Subject: [PATCH] Add .gitea/workflows/build-git.yaml --- .gitea/workflows/build-git.yaml | 165 ++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 .gitea/workflows/build-git.yaml diff --git a/.gitea/workflows/build-git.yaml b/.gitea/workflows/build-git.yaml new file mode 100644 index 0000000..b169fad --- /dev/null +++ b/.gitea/workflows/build-git.yaml @@ -0,0 +1,165 @@ +#-------------------------------------------------------------------------------- +# Workflow configuration +#-------------------------------------------------------------------------------- + +name: Build +on: + push: # Run on push + pull_request: # Run on pull-request + +#-------------------------------------------------------------------------------- +# Define application name & version +#-------------------------------------------------------------------------------- + +env: + VERSION: "1.0.0" + EXECUTABLE: "appqyouradio" + APPLICATION: "QYouRadio" + QML_DIR_NIX: "assets/qml" + QML_DIR_WIN: "assets\\qml" + +#-------------------------------------------------------------------------------- +# Workflow jobs (GNU/Linux, macOS & Windows) +#-------------------------------------------------------------------------------- + +jobs: + # + # GNU/Linux build (we run on Ubuntu 16.04 to generate AppImage) + # + build-linux: + runs-on: ubuntu-latest + steps: + # + # Checkout the repository + # + - name: Checkout repository and submodules + uses: actions/checkout@v2 + with: + submodules: recursive + + # + # Install Qt + # + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + # + # Install additional dependencies, stolen from: + # https://github.com/mapeditor/tiled/blob/master/.github/workflows/packages.yml + # + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libzstd-dev cmake + + # + # Compile the application + # + - name: Compile + run: | + mkdir build/ + cd build + cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr + make -j8 + + # + # Create the AppImage + # + - name: Create AppImage + run: | + make INSTALL_ROOT=appdir install + wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" -O linuxdeployqt + chmod a+x linuxdeployqt + ./linuxdeployqt appdir/usr/share/applications/*.desktop -appimage -bundle-non-qt-libs -extra-plugins=imageformats/libqsvg.so -qmldir="${{env.QML_DIR_NIX}}" + + # + # Rename AppImage to match "%AppName%-%Version%-Linux.AppImage" format + # + - name: Rename AppImage + run: mv *.AppImage ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + + # + # Upload AppImage to build artifacts + # + - name: Upload AppImage + uses: actions/upload-artifact@v2 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + + # + # Windows build + # + build-windows: + runs-on: windows-latest + steps: + # + # Checkout the repository + # + - name: Checkout repository and submodules + uses: actions/checkout@v2 + with: + submodules: recursive + + # + # Configure MSVC + # + - name: Configure MSVC + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 + spectre: true + + # + # Install Qt + # + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + # + # Install NSIS + # + - name: Install NSIS + run: | + Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') + scoop bucket add extras + scoop install nsis + + # + # Compile application + # + - name: Compile + run: | + qmake ${{env.QMAKE_PROJECT}} CONFIG+=release + nmake + + # + # Copy Qt DLLs, compiler runtime & application icon + # + - name: Deploy + run: | + mkdir bin + move release/${{env.EXECUTABLE}}.exe bin + windeployqt bin/${{env.EXECUTABLE}}.exe -qmldir="${{env.QML_DIR_WIN}}" --compiler-runtime + mkdir "${{env.APPLICATION}}" + move bin "${{env.APPLICATION}}" + xcopy deploy\windows\resources\icon.ico "${{env.APPLICATION}}" + + # + # Create NSIS installer + # + - name: Make NSIS installer + run: | + move "${{env.APPLICATION}}" deploy\windows\nsis\ + cd deploy\windows\nsis + makensis /X"SetCompressor /FINAL lzma" setup.nsi + ren *.exe ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe + + # + # Upload installer to build artifacts + # + - name: Upload NSIS installer + uses: actions/upload-artifact@v2 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe + path: deploy/windows/nsis/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe \ No newline at end of file