pipeline {
    agent any

    options {
        timestamps()
        disableConcurrentBuilds()
    }

    stages {
        stage('Verify source checkout') {
            steps {
                echo 'FlashRead source checkout succeeded.'
                sh 'pwd && git log -1 --oneline'
            }
        }

        stage('Build FlashRead CI image') {
            steps {
                script {
                    def ciImage = docker.build(
                        'fast_reader-ci:latest',
                        '-f Dockerfile.ci .'
                    )
                    echo "Built CI image: ${ciImage.id}"
                }
            }
        }

        stage('Inspect build environment') {
            steps {
                sh '''
                    echo "=== Build environment ==="
                    echo

                    for tool in git go node npm wails syft grype docker; do
                        if command -v "$tool" >/dev/null 2>&1; then
                            echo "[FOUND] $tool"
                            "$tool" --version 2>&1 | head -n 1 || true
                        else
                            echo "[MISSING] $tool"
                        fi
                    done
                '''
            }
        }
        stage('Test Docker Pipeline') {
            steps {
                script {
                    docker.image('alpine:3.20').withRun('', 'sleep 5') { container ->
                        echo "Docker Pipeline started container: ${container.id}"
                    }
                }
            }
        }
    }

    post {
        success {
            echo 'FlashRead CI environment check completed successfully.'
        }
        failure {
            echo 'FlashRead CI environment check failed.'
        }
    }
}
