pipeline {
    agent any
    stages {
        stage('Build Windows Debug') {
            when {
                branch 'develop'
                beforeAgent true
            }
            agent {
                docker {
                    image 'mstorsjo/llvm-mingw:20260616'
                    reuseNode true
                }
            }
            environment { 
                DEBUG = 1
            }
            steps {
                sh 'bash ./build.sh win32'
                sh 'analyze-build --verbose --use-analyzer /opt/llvm-mingw/bin/i686-w64-mingw32-clang++ --cdb build/compile_commands.json --output build/Analysis/win32'
                sh 'bash ./build.sh win64-ESP'
                sh 'analyze-build --verbose --use-analyzer /opt/llvm-mingw/bin/x86_64-w64-mingw32-clang++ --cdb build/compile_commands.json --output build/Analysis/win64-ESP'
                sh 'bash ./build.sh win64'
                sh 'analyze-build --verbose --use-analyzer /opt/llvm-mingw/bin/x86_64-w64-mingw32-clang++ --cdb build/compile_commands.json --output build/Analysis/win64'
            }
        }
        stage('Build Linux Debug') {
            when {
                branch 'develop'
                beforeAgent true
            }
            agent {
                docker {
                    image 'silkeh/clang:22'
                    reuseNode true
                }
            }
            environment { 
                DEBUG = 1
            }
            steps {
                sh 'bash ./build.sh lin'
                sh 'analyze-build --verbose --cdb build/compile_commands.json --output build/Analysis/lin'
            }
        }
        stage('Build MacOSX Debug') {
            when {
                branch 'develop'
                beforeAgent true
            }
            agent {
                docker {
                    image 'osxcross:latest'
                    reuseNode true
                }
            }
            environment { 
                DEBUG = 1
            }
            steps {
                sh 'bash ./build.sh mac'
                sh 'analyze-build --verbose --use-analyzer /opt/osxcross/target/bin/o64-clang++ --cdb build/compile_commands.json --output build/Analysis/mac'
            }
        }
        stage('Archive Debug') {
            when {
                branch 'develop'
            }
            steps {
                zip zipFile: 'X-Plane Debug.zip', archive: true, dir: 'build/X-Plane'
                zip zipFile: 'ESP Debug.zip', archive: true, dir: 'build/ESP'
                zip zipFile: 'Analysis.zip', archive: true, dir: 'build/Analysis'
                sh 'rm -rf build'
            }
        }
    }
}
