Introduce w64-mingw32 workflows
Some checks failed
/ build (pull_request) Failing after 16m15s

- 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 9f88f4e366
commit a6d1c38c67
Signed by: xavi
GPG key ID: 84FF3612A9BF43F2
2 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,34 @@
on:
pull_request:
paths:
- '/packaging/3rdParty-devel/**'
workflow_dispatch:
jobs:
build:
runs-on: docker
container:
image: forge.a-lec.org/speed-dreams/debian-i686-w64-mingw32:stable
steps:
- name: Clone repository
run: |
git clone -q \
-b ${{ env.GITHUB_HEAD_REF }} \
${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}.git \
/src
- name: Configure third-party libraries
run: cmake -B build -DCMAKE_TOOLCHAIN_FILE=i686-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
- name: Archive third-party libraries
run: tar -czf 3rdparty-${{ env.GITHUB_SHA }}.tar.gz 3rdParty/
working-directory: /src/packaging/3rdParty-devel/build
- name: Upload third-party libraries
run: upload-artifact 3rdparty-${{ env.GITHUB_SHA }}.tar.gz
working-directory: /src/packaging/3rdParty-devel/build
env:
URL: ${{ vars.STORE_URL }}
USERNAME: ${{ secrets.STORE_USERNAME }}
PASSWORD: ${{ secrets.STORE_PASSWORD }}

View file

@ -0,0 +1,37 @@
on: [pull_request]
jobs:
build:
runs-on: docker
container:
image: forge.a-lec.org/speed-dreams/debian-i686-w64-mingw32:stable
steps:
- name: Download third-party libraries
run: curl -so 3rdparty.tar.gz ${{ vars.THIRDPARTY_URL }}
- name: Untar third-party libraries
run: tar -xf 3rdparty.tar.gz
- name: Clone repository
run: |
git clone -q \
-b ${{ env.GITHUB_HEAD_REF }} \
${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}.git \
src
- name: Configure project
run: |
cmake -B build \
-DSD_ASSUME_DATADIR=1 \
-DCMAKE_FIND_ROOT_PATH=${{ env.GITHUB_WORKSPACE}}/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 }}