server_builds.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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.x
  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. libspeechd-dev speech-dispatcher
  42. - name: Restore Godot build cache
  43. uses: ./.github/actions/godot-cache-restore
  44. with:
  45. cache-name: ${{ matrix.cache-name }}
  46. continue-on-error: true
  47. - name: Setup python and scons
  48. uses: ./.github/actions/godot-deps
  49. - name: Compilation
  50. uses: ./.github/actions/godot-build
  51. with:
  52. sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
  53. platform: server
  54. target: ${{ matrix.target }}
  55. tools: ${{ matrix.tools }}
  56. - name: Save Godot build cache
  57. uses: ./.github/actions/godot-cache-save
  58. with:
  59. cache-name: ${{ matrix.cache-name }}
  60. continue-on-error: true