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
                        wget -q -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'
        }
    }
}
