pipeline { agent any environment { GODOT_VERSION = '4.6.2-stable' GODOT_BIN = '/tmp/godot_ci/Godot_v4.6.2-stable_linux.x86_64' } stages { stage('Godot Setup') { steps { sh ''' if [ ! -x "$GODOT_BIN" ]; then mkdir -p /tmp/godot_ci curl -fsSL -o /tmp/godot_ci/godot.zip \ "https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}/Godot_v${GODOT_VERSION}_linux.x86_64.zip" unzip -o /tmp/godot_ci/godot.zip -d /tmp/godot_ci/ chmod +x "$GODOT_BIN" fi ''' } } stage('Import Assets') { steps { // Godot must import assets before tests can run sh '$GODOT_BIN --headless --import || true' } } stage('Unit Tests') { steps { sh '$GODOT_BIN --headless -s res://addons/gut/gut_cmdln.gd -gdir=res://test/ -gexit' } } } post { success { echo '✅ All tests passed' } failure { echo '❌ Tests failed' } } }