pipeline {
    agent any
     parameters {
            // 提供要部署的环境选项
            choice(
                description: '你需要选择哪个环境进行部署 ?',
                name: 'env',
                choices: ['开发环境', '测试环境', '线上环境']
            )
            // 提供构建的模块选项
            choice(
                description: '你需要选择哪个模块进行构建 ?',
                name: 'moduleName',
                choices: ['api_gateway', 'business_service', 'data_collect_service', 'file_center', 'flowable_center', 'td_service', 'user_service', 'vpp_service', 'xxl_job', 'xxl_job_admin']
            )

    environment {
        GIT_CREDENTIALS_ID = 'gitlab_majun'      // GitLab 凭证 ID
        SONARQUBE_SERVER = 'sonarqube'           // SonarQube 凭证 ID
        MAVEN_HOME = tool(name: '/app/maven')    // 使用jenkins容器内映射的maven路劲
    }
    stages {
        stage('Checkout') {
            steps {
                script {
                    // GitLab repository URL and branch (edit these as needed)
                    def gitRepositoryUrl = 'http://192.168.100.250:7000/fanchunlei/hocloud-open.git'
                    def gitBranch = 'main'

                    // 拉取代码
                    git url: gitRepositoryUrl,
                        branch: gitBranch,
                        credentialsId: GIT_CREDENTIALS_ID
                }
            }
        }
        stage('SonarQube Analysis') {
            steps {
                withSonarQubeEnv(SONARQUBE_SERVER) {
                    // 使用 Maven 进行 SonarQube 扫描
                    sh "${MAVEN_HOME}/bin/mvn clean verify sonar:sonar -Dsonar.projectKey=fanchunlei_hocloud-open_AZMjkNEoXxgoDCEPS1yf""
                }
            }
        }
    }
    post {
        always {
            // 清理工作区
            cleanWs()
        }
    }
}
