K8S学习之基础五十四:jenkins新建测试流水线

jenkins新建测试流水线

新建任务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

node('testak') {
    stage('第1步:从gitee上下载源代码') {
        git url: "https://gitee.com/akang007/jenkins-sample"
        script {
            build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
        }
    }
    stage('第2步:基于dockerfile文件制作镜像') {
        sh "docker build -t 192.168.40.62/jenkins-demo/jenkins-demo:${build_tag} ."
    }
    stage('第3步:把镜像上传到harbor私有仓库') {
        withCredentials([usernamePassword(credentialsId: 'dockerharbor', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) {
            sh "docker login 172.16.80.140 -u ${dockerHubUser} -p ${dockerHubPassword}"
            sh "docker push 172.16.80.140/jenkins-demo/jenkins-demo:${build_tag}"
        }
    }
    stage('第4步:把pod部署到开发环境') {
		sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s-dev-harbor.yaml"
        sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s-dev-harbor.yaml"
//        sh "bash running-devlopment.sh"
        sh "kubectl apply -f k8s-dev-harbor.yaml  --validate=false"
	}	
	stage('第5步:把pod部署到测试环境') {	
		def userInput = input(
            id: 'userInput',

            message: '确定部署到测试环境吗?输入yes确定',
            parameters: [
                [
                    $class: 'ChoiceParameterDefinition',
                    choices: "YES\nNO",
                    name: 'Env'
                ]
            ]
        )
        echo "This is a deploy step to ${userInput}"
        if (userInput == "YES") {
            sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s-qa-harbor.yaml"
            sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s-qa-harbor.yaml"
//            sh "bash running-qa.sh"
            sh "kubectl apply -f k8s-qa-harbor.yaml --validate=false"
            sh "sleep 6"
            sh "kubectl get pods -n qatest"
            sh "cd /home/jenkins/agent/workspace/jenkins-harbor"
            sh "/root/Python-3.12.5/python qatest.py"
        } else {
            //exit
        }
    }
	stage('第6步:pod部署到生产环境') {	
		def userInput = input(

            id: 'userInput',
            message: '确定部署到生产环境吗?输入yes确定',
            parameters: [
                [
                    $class: 'ChoiceParameterDefinition',
                    choices: "YES\nNO",
                    name: 'Env'
                ]
            ]
        )
        echo "T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值