properties([
    parameters([
        // New preferred params:
        string(name: 'baseBranch', defaultValue: 'ahx-dev', description: '分支名（如 master, dev）'),
        choice(name: 'namespace', choices: ['ahxpm'], description: 'K8S namespace（如 default）'),
        choice(name: 'action', choices: ['upgrade', 'upgrade:selected'], description: '选择操作类型')
        // Backward compatible legacy param:
        // string(name: 'actionParameter', defaultValue: 'refs/heads/dev', description: '参数路径（如 refs/heads/dev）')
    ])
])

node {
    checkout scm
    def deployAction = params.action ?: 'upgrade'
    def deployBaseBranch = params.baseBranch ?: 'dev'
    def deployNamespace = params.namespace ?: 'ahxpm'
    def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
    def stages = load "./sharedLibs/stages.k8s.groovy"
    def pipeline = load "./sharedLibs/pipelines.k8s.java.groovy"
    def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project

    def WORKING_SPACE = 'ahx-oidc/DEV'
    dir(WORKING_SPACE) {
        def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
        def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
        CONFIG.pipeline = PROJECT_CONFIG.pipeline
        println 'configs: ' + CONFIG
println 'deployNamespace: ' + deployNamespace
        pipeline.run(CONFIG, deployAction, stages, deployBaseBranch, deployNamespace)
    }
}