Pin clang-format to version 16, and black to 24.10.0.
Keep using Ubuntu 22.04 for Linux builds for portability.
(cherry picked from commit fd9bd108af)
64 lines
2.0 KiB
YAML
64 lines
2.0 KiB
YAML
name: ☁ Server Builds
|
|
on:
|
|
workflow_call:
|
|
|
|
# Global Settings
|
|
env:
|
|
# Only used for the cache key. Increment version to force clean build.
|
|
GODOT_BASE_BRANCH: 3.5
|
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no module_mono_enabled=yes mono_static=yes mono_glue=no
|
|
|
|
concurrency:
|
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-server
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-server:
|
|
# Stay one LTS before latest to increase portability of Linux artifacts.
|
|
runs-on: "ubuntu-22.04"
|
|
name: ${{ matrix.name }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: Linux Headless w/ Mono (target=release_debug, tools=yes)
|
|
cache-name: server-editor-mono
|
|
target: release_debug
|
|
tools: true
|
|
|
|
- name: Linux Server w/ Mono (target=release, tools=no)
|
|
cache-name: server-template-mono
|
|
target: release
|
|
tools: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Linux dependencies
|
|
shell: bash
|
|
run: |
|
|
# Azure repositories are flaky, remove them.
|
|
sudo rm -f /etc/apt/sources.list.d/{azure,microsoft}*
|
|
sudo apt-get update
|
|
# The actual dependencies.
|
|
sudo apt-get install --no-install-recommends build-essential pkg-config libx11-dev \
|
|
libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev \
|
|
libpulse-dev libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip
|
|
|
|
- name: Setup Godot build cache
|
|
uses: ./.github/actions/godot-cache
|
|
with:
|
|
cache-name: ${{ matrix.cache-name }}
|
|
continue-on-error: true
|
|
|
|
- name: Setup python and scons
|
|
uses: ./.github/actions/godot-deps
|
|
|
|
- name: Compilation
|
|
uses: ./.github/actions/godot-build
|
|
with:
|
|
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
|
|
platform: server
|
|
target: ${{ matrix.target }}
|
|
tools: ${{ matrix.tools }}
|