cpactions.yml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. name: Build (C/P Actions)
  2. on: [push, pull_request]
  3. concurrency:
  4. group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
  5. cancel-in-progress: true
  6. jobs:
  7. freebsd:
  8. runs-on: ubuntu-latest
  9. name: '${{ matrix.platform.name }} ${{ matrix.platform.os-version }}'
  10. timeout-minutes: 30
  11. strategy:
  12. fail-fast: false
  13. matrix:
  14. platform:
  15. - { name: FreeBSD, os: freebsd, os-version: 13.2, os-arch: x86-64, artifact: SDL-freebsd-x64,
  16. sdl-cmake-configure-arguments: '-DSDL_CHECK_REQUIRED_INCLUDES="/usr/local/include" -DSDL_CHECK_REQUIRED_LINK_OPTIONS="-L/usr/local/lib"',
  17. setup-cmd: 'sudo pkg update',
  18. install-cmd: 'sudo pkg install -y cmake ninja pkgconf libXcursor libXext libXinerama libXi libXfixes libXrandr libXScrnSaver libXxf86vm wayland wayland-protocols libxkbcommon mesa-libs libglvnd evdev-proto libinotify alsa-lib jackit pipewire pulseaudio sndio dbus zh-fcitx ibus libudev-devd',
  19. }
  20. - { name: NetBSD, os: netbsd, os-version: 9.3, os-arch: x86-64, artifact: SDL-netbsd-x64,
  21. sdl-cmake-configure-arguments: '',
  22. setup-cmd: 'export PATH="/usr/pkg/sbin:/usr/pkg/bin:/sbin:$PATH";export PKG_CONFIG_PATH="/usr/pkg/lib/pkgconfig";export PKG_PATH="https://cdn.netBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f "1 2" -d.)/All/";echo "PKG_PATH=$PKG_PATH";echo "uname -a -> \"$(uname -a)\"";sudo -E sysctl -w security.pax.aslr.enabled=0;sudo -E sysctl -w security.pax.aslr.global=0;sudo -E pkgin clean;sudo -E pkgin update',
  23. install-cmd: 'sudo -E pkgin -y install cmake dbus pkgconf ninja-build pulseaudio libxkbcommon wayland wayland-protocols libinotify libusb1',
  24. }
  25. steps:
  26. - uses: actions/checkout@v4
  27. - name: Build
  28. uses: cross-platform-actions/action@v0.23.0
  29. with:
  30. operating_system: ${{ matrix.platform.os }}
  31. architecture: ${{ matrix.platform.os-arch }}
  32. version: ${{ matrix.platform.os-version }}
  33. run: |
  34. ${{ matrix.platform.setup-cmd }}
  35. ${{ matrix.platform.install-cmd }}
  36. cmake -S . -B build -GNinja \
  37. -Wdeprecated -Wdev -Werror \
  38. -DCMAKE_BUILD_TYPE=Release \
  39. -DSDL_WERROR=ON \
  40. ${{ matrix.platform.sdl-cmake-configure-arguments }}
  41. cmake --build build/ --config Release --verbose
  42. cmake --build build/ --config Release --target package
  43. cmake --build build/ --config Release --target clean
  44. rm -rf build/dist/_CPack_Packages
  45. rm -rf build/CMakeFiles
  46. rm -rf build/docs
  47. - uses: actions/upload-artifact@v4
  48. with:
  49. if-no-files-found: error
  50. name: ${{ matrix.platform.artifact }}
  51. path: build/dist/SDL3*