Files
metabuilder/gameengine/.github/workflows/upload-build-artifact.yml
johndoe6345789 6fbc47a2db feat: Add SDL3CPlusPlus game engine to gameengine/
Import SDL3CPlusPlus C++ game engine with:
- SDL3 + bgfx rendering backend
- Vulkan/Metal/DirectX shader support
- MaterialX material system
- Scene framework with ECS architecture
- Comprehensive test suite (TDD approach)
- Conan package management
- CMake build system

This provides the native C++ foundation for the Universal Platform's
Game and 3D capability modules.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:29:20 +00:00

84 lines
2.5 KiB
YAML

name: Upload Build Artifacts
on:
workflow_call:
permissions:
contents: write
jobs:
upload-artifact:
strategy:
fail-fast: false
matrix:
include:
- name: linux-amd64-sdl3
platform: linux
arch: amd64
sdl_version: SDL3
- name: linux-arm64-sdl3
platform: linux
arch: arm64
sdl_version: SDL3
- name: linux-amd64-sdl
platform: linux
arch: amd64
sdl_version: sdl
- name: linux-arm64-sdl
platform: linux
arch: arm64
sdl_version: sdl
runs-on: ubuntu-24.04
env:
BUILD_DIR: build/${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.sdl_version }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Enforce macro policy
run: ./scripts/check_macros.sh
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build linux container image
if: matrix.platform == 'linux'
run: |
docker buildx build \
--platform linux/${{ matrix.arch }} \
--load \
--build-arg USERNAME=builder \
--build-arg UID=$(id -u) \
--build-arg GID=$(id -g) \
-f .github/workflows/Dockerfile \
-t sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} .
- name: Run linux build in container
if: matrix.platform == 'linux'
env:
BUILD_DIR: ${{ env.BUILD_DIR }}
SDL_VERSION: ${{ matrix.sdl_version }}
run: |
docker run --rm \
-e BUILD_DIR \
-e SDL_VERSION \
-w /workspace \
-v "${{ github.workspace }}:/workspace" \
sdl3_app:${{ matrix.platform }}-${{ matrix.arch }} \
bash -c 'set -euo pipefail
if [ -d "$BUILD_DIR" ]; then rm -rf "$BUILD_DIR"; fi
cp -a /conan_build "$BUILD_DIR"
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DSDL_VERSION="$SDL_VERSION"
cmake --build "$BUILD_DIR" --config Release'
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.sdl_version }}
path: ${{ env.BUILD_DIR }}