// Jenkins共享库测试流水线
// 用于验证fzx-jenkins-library是否正确加载和工作

pipeline {
    agent any
    
    parameters {
        booleanParam(name: 'TEST_BUILD_BACKEND', defaultValue: false, description: '测试buildBackend函数')
        booleanParam(name: 'TEST_BUILD_IMAGES', defaultValue: false, description: '测试buildImages函数')
        booleanParam(name: 'TEST_PUSH_IMAGES', defaultValue: false, description: '测试pushImages函数')
        booleanParam(name: 'TEST_DEPLOY', defaultValue: false, description: '测试deployServices函数')
    }
    
    stages {
        stage('Test Shared Library Load') {
            steps {
                script {
                    echo "🔍 开始测试共享库加载..."
                    
                    // 测试是否能加载共享库
                    try {
                        echo "📚 尝试调用共享库函数..."
                        
                        // 测试buildBackend函数
                        if (params.TEST_BUILD_BACKEND) {
                            echo "🧪 测试buildBackend函数..."
                            buildBackend([
                                skipTests: true,
                                cleanMavenCache: false
                            ])
                        }
                        
                        // 测试buildImages函数
                        if (params.TEST_BUILD_IMAGES) {
                            echo "🧪 测试buildImages函数..."
                            buildImages()
                        }
                        
                        // 测试pushImages函数
                        if (params.TEST_PUSH_IMAGES) {
                            echo "🧪 测试pushImages函数..."
                            pushImages()
                        }
                        
                        // 测试deployServices函数
                        if (params.TEST_DEPLOY) {
                            echo "🧪 测试deployServices函数..."
                            deployServices()
                        }
                        
                        echo "✅ 共享库测试成功！"
                    } catch (Exception e) {
                        echo "❌ 共享库测试失败: ${e.getMessage()}"
                        error("共享库测试失败")
                    }
                }
            }
        }
    }
    
    post {
        success {
            echo "🎉 共享库测试流水线执行成功！"
        }
        failure {
            echo "❌ 共享库测试流水线执行失败，请检查共享库配置"
        }
    }
}