chore: Update MSYS2 Windows 32 and 64 bit toolchain and build scripts #2543
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows Companion 64-bit | |
on: | |
push: | |
branches: | |
- 'main' | |
tags: | |
- v* | |
paths: | |
- '.github/workflows/win_cpn-64.yml' | |
- 'companion/**' | |
- 'tools/build-companion.sh' | |
pull_request: | |
branches: | |
- 'main' | |
paths: | |
- '.github/workflows/win_cpn-64.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: "win64_mingw81" | |
MINGW_PATH: "mingw81_64" | |
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: MINGW64 | |
update: true | |
install: git make mingw-w64-x86_64-toolchain | |
- name: Install Dependencies | |
run: | | |
pacman -S --noconfirm mingw-w64-x86_64-cmake \ | |
mingw-w64-x86_64-python-pip \ | |
mingw-w64-x86_64-python-pillow \ | |
mingw-w64-x86_64-python-lz4 \ | |
mingw-w64-x86_64-libjpeg-turbo \ | |
mingw-w64-x86_64-zlib \ | |
mingw-w64-x86_64-libtiff \ | |
mingw-w64-x86_64-freetype \ | |
mingw-w64-x86_64-lcms2 \ | |
mingw-w64-x86_64-libwebp \ | |
mingw-w64-x86_64-openjpeg2 \ | |
mingw-w64-x86_64-libimagequant \ | |
mingw-w64-x86_64-libraqm \ | |
mingw-w64-x86_64-SDL2 \ | |
mingw-w64-x86_64-clang \ | |
mingw-w64-x86_64-nsis \ | |
mingw-w64-x86_64-dfu-util \ | |
mingw-w64-x86_64-openssl | |
python -m pip install clang jinja2 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
cache: true | |
cache-key-prefix: 'install-qt-action-win64' | |
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 <NAME>" | |
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-win64-${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 |