Introduce w64-mingw32 workflows
Some checks failed
/ build (pull_request) Failing after 2s

- build-3rdparty.yml cross-builds all third-party dependencies for
Windows. This workflow is meant to be run only sparingly, since
it fetches source code from many repositories and takes a long time to
build.

- build-w64-mingw32.yml cross-builds the game engine and tools for
Windows. It requires a pre-existing build of the third-party libraries.
This commit is contained in:
Xavier Del Campo Romero 2025-01-04 23:19:19 +01:00
parent 61cc37ea5c
commit 86ac588c44
Signed by: xavi
GPG key ID: 84FF3612A9BF43F2
2 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,24 @@
on:
pull_request:
paths:
- '/packaging/3rdParty-devel/**'
jobs:
build:
runs-on: docker
container:
image: forge.a-lec.org/speed-dreams/x86_64-w64-mingw32-docker:stable
steps:
- name: Clone repository
run: |
git clone \
-b ${{ env.GITHUB_HEAD_REF }} \
--depth 1 \
'${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}.git' \
/src
- name: Configure third-party libraries
run: cmake -B build -DCMAKE_TOOLCHAIN_FILE=x86_64-w64-mingw32.cmake
working-directory: /src/packaging/3rdParty-devel
- name: Build third-party libraries
run: cmake --build build -j$(nproc --all)
working-directory: /src/packaging/3rdParty-devel

View file

@ -0,0 +1,39 @@
on: [pull_request]
jobs:
build:
runs-on: docker
container:
image: forge.a-lec.org/speed-dreams/i686-w64-mingw32-docker:stable
steps:
- name: Download 3rdParty libraries
run: |
curl -O 3rdparty.zip "${{ vars.3RDPARTY_URL }}"
- name: Unzip 3rdParty libraries
run: |
unzip 3rdparty.zip -d /3rdparty
- name: Clone repository
run: |
git clone \
-b ${{ env.GITHUB_HEAD_REF }} \
--depth 1 \
${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}.git \
/src
- name: Configure project
run: cmake -B build \
-DSD_ASSUME_DATADIR=1 \
-DCMAKE_FIND_ROOT_PATH=/3rdparty \
-DCMAKE_TOOLCHAIN_FILE=packaging/3rdParty-devel/i686-w64-mingw32.cmake
working-directory: /src
- name: Build project
run: cmake --build build -j$(nproc --all)
working-directory: /src
- name: Build installer
run: cpack -G NSIS
working-directory: /src/build
- name: Upload installer
run: upload-artifact *.exe
working-directory: /src/build
env:
URL: ${{ vars.STORE_URL }}
USERNAME: ${{ secrets.STORE_USERNAME }}
PASSWORD: ${{ secrets.STORE_PASSWORD }}