栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

devops基于jenkins和k8s的cicd相关基于Library完成持续集成(三 )

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

devops基于jenkins和k8s的cicd相关基于Library完成持续集成(三 )

实现目标

简化上一个django项目的cicd流程,直接调用方法使用相关流程

jenkinsfile修改成声明试

声明式和脚本式的主要区别可以参考下面文章:
https://blog.csdn.net/qq_23483671/article/details/124081218

新建一个Library

1 把相关的方法都提交单独建一个groovy项目,提交到gitlab中
2.把Global Pipeline Libraries再jenkins上面添加

然后我们修改项目的jenkinsfile

@Library('test-devops') _

pipeline {
  agent {
    kubernetes {
      cloud 'k8s115'
      label 'slave'
      inheritFrom 'jenkins-slave'
     // defaultContainer 'node'
      yaml libraryResource('base/base.yaml')
    }
  }

    options {
		timeout(time: 20, unit: 'MINUTES')
		//gitLabConnection('gitlab')
	}
    environment {
        IMAGE_REPO = "192.168.200.118/library/qfcsspiders"
        IMAGE_CREDENTIAL = "dockerhub"
    }
    stages {
        stage('checkout') {
            steps {
                    checkout scm

            }
        }

        stage('CI'){
            failFast true
            parallel {
                stage('Unit Test') {
                    steps {
                        echo "Unit Test Stage Skip..."
                    }
                }
                stage('Code Scan') {
                    steps {
                        container('tools') {
                            script {
                               devops.scan().start()
                            }
                        }
                    }
                }
            }
        }


        stage('docker-image') {
            steps {
            container('docker') {
                    script{
                        devops.docker(
                            "${IMAGE_REPO}",
                            "${GIT_COMMIT}",
                            IMAGE_CREDENTIAL
                        ).build().push()
                    }
                 }
            }
        }

        stage('deploy') {
            steps {
                container('kubectl') {
                    script{
                    	devops.deploy("manifests", "manifests/k8s.yaml").start()

                    }
                }
            }
        }

        stage('integration test') {
            steps {
                container('tools') {
                    script{
                    	devops.robotTest("qfcsspiders")
                    }
                }
            }
        }




    }

     post {
        success {
            script{
                devops.notificationSuccess("qfcsspiders","wechat")
            }
        }
        failure {
            script{
                devops.notificationFailed("qfcsspiders","wechat")
            }
        }
    }
}

其中我们把测试用力定义另一个jenkins项目,这样两个就相互独立,测试人员单独去维护

This project is parameterized用于从主项目传入项目名称给这个测试项目,相关逻辑可以看代码

代码地址

1 jenkins-shared-library:
https://github.com/chenzhenhua86/jenkins-shared-library
2.
robot-cases
https://github.com/chenzhenhua86/robot-cases

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号