Skip to content

CI: attempt to create windows installers #372

CI: attempt to create windows installers

CI: attempt to create windows installers #372

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup
run: |
brew install lua sqlite
- name: Build
run: |
mkdir build
cd build
cmake .. -GXcode -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(pwd) -DCAVEPACKER=OFF -DUNITTESTS=OFF
xcodebuild build -target install -project caveproductions.xcodeproj CODE_SIGNING_REQUIRED=NO -configuration Release
../contrib/scripts/create_dmg.sh caveexpress dev $(pwd)/.. $(pwd)
- name: Upload the caveexpress artifacts
uses: actions/upload-artifact@v4
with:
name: mac-caveexpress
path: "build/caveexpress dev.dmg"
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev \
libyajl-dev libglm-dev libsdl2-image-dev libsqlite3-dev liblua5.4-dev zlib1g-dev \
pkg-config ninja-build libbox2d-dev=2.4*
- name: Linux
run: |
cmake -GNinja -H. -Bbuild -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --component caveexpress --prefix install-caveexpress
cmake --install build --component cavepacker --prefix install-cavepacker
- name: Test
run: |
cd build
ctest
continue-on-error: true
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: |
mkdir build
cd build
cmake --version
cmake .. -DCMAKE_BUILD_TYPE=Release -DUNITTESTS=OFF
cmake --build .
cmake --install . --component caveexpress --prefix install-caveexpress
cmake --install . --component cavepacker --prefix install-cavepacker
- name: Create caveexpress installer
uses: joncloud/[email protected]
with:
script-file : "build/src/caveexpress/main/setup.nsi"
- name: Create cavepacker installer
uses: joncloud/[email protected]
with:
script-file : "build/src/cavepacker/main/setup.nsi"
- name: Upload the caveexpress installer
uses: actions/upload-artifact@v4
with:
name: win-caveexpress-installer
path: build/src/caveexpress/main/caveexpress*.exe
- name: Upload the cavepacker installer
uses: actions/upload-artifact@v4
with:
name: win-cavepacker-installer
path: build/src/cavepacker/main/cavepacker*.exe
- name: Upload the cavepacker artifacts
uses: actions/upload-artifact@v4
with:
name: win-cavepacker
path: build/install-cavepacker
- name: Upload the caveexpress artifacts
uses: actions/upload-artifact@v4
with:
name: win-caveexpress
path: build/install-caveexpress
emscripten:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev \
libyajl-dev libglm-dev libsdl2-image-dev libsqlite3-dev liblua5.4-dev zlib1g-dev \
pkg-config ninja-build libbox2d-dev=2.4*
- uses: mymindstorm/setup-emsdk@v13
with:
version: 4.0.5
no-cache: true
- name: Emscripten
run: |
cmake -H. -Bbuild-data -GNinja
cmake --build build-data
emcmake cmake -H. -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release -DUNITTESTS=OFF -DTOOLS=OFF
cmake --build build --target caveexpress
cmake --build build --target cavepacker
- name: Deploy to branch deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git
git fetch
mkdir wasm
mv cavepacker.* wasm
mv caveexpress.* wasm
git checkout origin/deploy
mv wasm/* .
git status
git commit -a --amend -m "wasm deploy"
git push origin HEAD:deploy --force