haiku.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. name: Build (Haiku @QEMU)
  2. on:
  3. # push: # Disabled ci on push because of long build times
  4. pull_request:
  5. paths:
  6. - '**/haiku/*'
  7. - '.github/workflows/haiku.yml'
  8. workflow_dispatch:
  9. jobs:
  10. haiku:
  11. runs-on: ubuntu-latest
  12. name: Haiku
  13. container: docker.io/hectorm/qemu-haiku:latest
  14. steps:
  15. - name: Wait until the VM is ready
  16. run: |
  17. container-init & timeout 600 vmshell exit 0
  18. - name: Setup Haiku dependencies
  19. run: vmshell pkgman install -y cmd:cmake cmd:gcc cmd:ld cmd:ninja cmd:pkg_config haiku_devel devel:libgl devel:libglu
  20. - uses: actions/checkout@v3
  21. - name: Copy project to VM
  22. run: |
  23. vmshell mkdir ./src/
  24. tar -cf - ./ | vmshell tar -xf - -C ./src/
  25. - name: Configure (CMake)
  26. run: vmshell cmake -S src -B build -GNinja \
  27. -DSDL_TESTS=ON \
  28. -DSDL_WERROR=ON \
  29. -DSDL_INSTALL_TESTS=ON \
  30. -DSDL_VENDOR_INFO=Github_Workflow \
  31. -DCMAKE_INSTALL_PREFIX=cmake_prefix \
  32. -DCMAKE_BUILD_TYPE=Release \
  33. -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
  34. -DSDL_TESTS_TIMEOUT_MULTIPLIER=10
  35. - name: Build (CMake)
  36. run: |
  37. vmshell cmake --build ./build/ --config Release --verbose --parallel
  38. - name: Run build-time tests (CMake)
  39. run: |
  40. vmshell ctest -VV --test-dir build/
  41. - name: Install (CMake)
  42. run: |
  43. vmshell cmake --install ./build/ --config Release
  44. - name: Verify CMake configuration files
  45. run: |
  46. vmshell cmake -S ./src/cmake/test -B cmake_config_build -G Ninja \
  47. -DCMAKE_BUILD_TYPE=Release \
  48. -DCMAKE_PREFIX_PATH=\$PWD/cmake_prefix
  49. vmshell cmake --build ./cmake_config_build --verbose
  50. - name: Verify sdl3.pc
  51. run: |
  52. vmshell CC=c++ PKG_CONFIG_PATH=\$PWD/cmake_prefix/lib/pkgconfig src/cmake/test/test_pkgconfig.sh