Files
tactility/.github/actions/build-simulator/action.yml
T
Ken Van Hoeylandt 72089f74f3 Refactor SDL/FreeRTOS implementation to support macOS simulator properly (#653)
- Run SDL from main() and place FreeRTOS in separate thread. This fixes macOS support.
- Updated GitHub Actions to publish macOS simulator build for testing, updated amd64 to x86_64 for consistent naming.
2026-09-21 19:52:01 -04:00

55 lines
1.9 KiB
YAML

name: Build
inputs:
os_name:
description: A descriptive name for the operating system (e.g. linux, windows)
required: true
architecture:
description: A descriptive name for the target architecture (e.g. x86_64, aarch64, etc.)
required: true
runs:
using: "composite"
steps:
- name: "Checkout repo"
uses: actions/checkout@v6
with:
submodules: recursive
- name: Install Linux Dependencies for SDL
if: ${{ runner.os == 'Linux' }}
shell: bash
# See Libraries/SDL/docs/README-linux.md
run: >
sudo apt-get update &&
sudo apt-get install build-essential git make
pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev
libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev
libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev
libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev
libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev
env:
WLR_BACKENDS: headless
WLR_LIBINPUT_NO_DEVICES: 1
WAYLAND_DISPLAY: wayland-1
GTK_USE_PORTAL: 0
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.31.x'
- name: "Prepare Project"
shell: bash
run: cmake -S ./ -B buildsim
- name: "Build Tests"
shell: bash
run: cmake --build buildsim --target Tactility
- name: 'Release'
shell: bash
run: Buildscripts/release-simulator.sh buildsim release/Simulator-${{ inputs.os_name }}-${{ inputs.architecture }}
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: Simulator-${{ inputs.os_name }}-${{ inputs.architecture }}
path: release/Simulator-${{ inputs.os_name }}-${{ inputs.architecture }}
retention-days: 30