name: Windows Companion 32-bit on: push: branches: - 'main' tags: - v* paths: - '.github/workflows/win_cpn-32.yml' - 'companion/**' - 'tools/build-companion.sh' workflow_dispatch: env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release CMAKE_GENERATOR: "MSYS Makefiles" QT_VERSION: "5.15.2" MINGW_VERSION: "win32_mingw81" MINGW_PATH: "mingw81_32" jobs: build: # The CMake configure and build commands are platform agnostic and should work equally # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: msys2/setup-msys2@v2 with: msystem: MINGW32 update: true install: git make curl tar mingw-w64-i686-toolchain - name: Install Dependencies run: | pacman -S --noconfirm mingw-w64-i686-cmake \ mingw-w64-i686-python-pip \ mingw-w64-i686-python-pillow \ mingw-w64-i686-libjpeg-turbo \ mingw-w64-i686-zlib \ mingw-w64-i686-libtiff \ mingw-w64-i686-freetype \ mingw-w64-i686-lcms2 \ mingw-w64-i686-libwebp \ mingw-w64-i686-openjpeg2 \ mingw-w64-i686-libimagequant \ mingw-w64-i686-libraqm \ mingw-w64-i686-SDL2 \ mingw-w64-i686-clang \ mingw-w64-i686-nsis \ mingw-w64-i686-openssl SETUPTOOLS_USE_DISTUTILS=stdlib pip install lz4 python -m pip install clang jinja2 lz4 - name: Download and unpack dfu-util run: | curl -LO https://dfu-util.sourceforge.net/releases/dfu-util-0.11-binaries.tar.xz && \ tar -xf dfu-util-0.11-binaries.tar.xz cp dfu-util-0.11-binaries/win32/dfu-util-static.exe /mingw32/bin/dfu-util.exe cp dfu-util-0.11-binaries/win32/libusb-1.0.dll /mingw32/bin/libusb-1.0.dll cp dfu-util-0.11-binaries/win32/libusb-1.0.dll.a /mingw32/bin/libusb-1.0.dll.a - name: Install Qt uses: jurplel/install-qt-action@v3 with: cache: true cache-key-prefix: 'install-qt-action-win32' version: ${{ env.QT_VERSION }} arch: ${{ env.MINGW_VERSION }} - name: Check out the repo uses: actions/checkout@v4 with: submodules: recursive - name: Build working-directory: ${{github.workspace}} # Execute the build. You can specify a specific target with "--target " run: | mkdir output && \ CMAKE_PREFIX_PATH=$RUNNER_WORKSPACE/Qt/$QT_VERSION/$MINGW_PATH \ tools/build-companion.sh "$(pwd)" "$(pwd)/output/" - name: Compose release filename # https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions run: echo "artifact_name=edgetx-cpn-win32-${GITHUB_REF##*/}" >> $GITHUB_ENV - name: Archive production artifacts uses: actions/upload-artifact@v4 with: name: "${{ env.artifact_name }}" path: ${{github.workspace}}/output retention-days: 15