• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

jenkins pipeline 中使用 if switch 分支语句

pipeline 中使用 if 语句

pipeline {
    
    //创建 jenkins 参数
    parameters {

        string(name: 'open_log', defaultValue: params.open_log, description: 'log-on: 加入 online ; log-off: 不加 online')

    }

    agent {
        node {
            label ' yunwei-node'
        }
    }

    stages {
        stage('init params') {
            steps {

                sh "echo ${params.open_log}"

                script {

                    if (params.open_log.trim() == "log-on") {
                        env.RUN_CMD = "on"
                    } else {
                        env.RUN_CMD = "off"
                    }
                }

                sh "echo ${env.RUN_CMD}"

            }
        }

    }

}

pipeline 中使用 switch 语句

pipeline {
    //创建 jenkins 参数
    parameters {
        // string(name: 'project_name', defaultValue: 'spring-boot-demo-helloworld', description: '项目名字')
        // string(name: 'version', defaultValue: '0.0.1-SNAPSHOT', description: 'pkg 打包版本')
        choice(name: 'deploy_choice', choices: ['all', 'canary_1', 'canary_other'], description: 'all 全部; canary_1 先发一个; canary_other 再发余下')
    }
    agent {
        node {
            label 'slave-node'
        }
    }
    stages {
        stage('init params') {
        
            steps {
                // 设置环境变量
                script {
                    env.LIMIT_MEMORY = params.limit_memory != null ? "${params.limit_memory}" : 512  // 单位 m ,此处不加单位, 应用于 java 程序和 request
                    env.K8S_LIMIT_MAX_MEMORY = params.limit_max_memory != null ? "${params.limit_max_memory}" : 1500 //单位 m ,此处不加单位, 应用于  limit mem 达到此值 pod 重启
                }
            }
        }
        // Deploy to Kubernetes
        stage('Deploy to Kubernetes') {
            steps {
                script{
                    switch(params.deploy_choice) {
                        case "canary_1":
                            println("deploy canary_1");
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.CANARY_DEPLOYMENT_FILE}"
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.SERVICE_FILE}"
                            break;
                        case "canary_other":
                            println("deploy canary_other");
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.PLOYMENT_FILE}"
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.HPA_CONFI_FILE}"
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.SERVICE_FILE}"
                            break;
                        default:
                            println("deploy all");
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.PLOYMENT_FILE} -f scripts/${env.CANARY_DEPLOYMENT_FILE}"
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.SERVICE_FILE}"
                            sh "kubectl -n ${env.DEPLOY_ENV} apply -f scripts/${env.HPA_CONFI_FILE}"
                            break;
                    }
                }
                // 检查POD是否替换完毕
                sh "/opt/jenkins-nodes-prd/check_tags/check_servre-canary.sh ${env.DEPLOY_ENV} ${params.project_name}"
            }
        }
    }
}


0
0
下一篇:SecureCRT failed to open the host key database file

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。