server_builds.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. name: ☁ Server Builds
  2. on:
  3. workflow_call:
  4. # Global Settings
  5. env:
  6. # Only used for the cache key. Increment version to force clean build.
  7. GODOT_BASE_BRANCH: 3.5
  8. SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no module_mono_enabled=yes mono_static=yes mono_glue=no
  9. concurrency:
  10. group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-server
  11. cancel-in-progress: true
  12. jobs:
  13. build-server:
  14. # Stay one LTS before latest to increase portability of Linux artifacts.
  15. runs-on: "ubuntu-22.04"
  16. name: ${{ matrix.name }}
  17. strategy:
  18. fail-fast: false
  19. matrix:
  20. include:
  21. - name: Linux Headless w/ Mono (target=release_debug, tools=yes)
  22. cache-name: server-editor-mono
  23. target: release_debug
  24. tools: true
  25. - name: Linux Server w/ Mono (target=release, tools=no)
  26. cache-name: server-template-mono
  27. target: release
  28. tools: false
  29. steps:
  30. - uses: actions/checkout@v4
  31. - name: Linux dependencies
  32. shell: bash
  33. run: |
  34. # Azure repositories are flaky, remove them.
  35. sudo rm -f /etc/apt/sources.list.d/{azure,microsoft}*
  36. sudo apt-get update
  37. # The actual dependencies.
  38. sudo apt-get install --no-install-recommends build-essential pkg-config libx11-dev \
  39. libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev \
  40. libpulse-dev libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip
  41. - name: Setup Godot build cache
  42. uses: ./.github/actions/godot-cache
  43. with:
  44. cache-name: ${{ matrix.cache-name }}
  45. continue-on-error: true
  46. - name: Setup python and scons
  47. uses: ./.github/actions/godot-deps
  48. - name: Compilation
  49. uses: ./.github/actions/godot-build
  50. with:
  51. sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
  52. platform: server
  53. target: ${{ matrix.target }}
  54. tools: ${{ matrix.tools }}