Jenkins pipeline在docker执行测试代码

7 篇文章 0 订阅
5 篇文章 0 订阅

背景

开发提交代码后,由Jenkins去自动执行测试代码,如果同时有多个提交那么会开启多个任务,就会导致基础数据构造出问题(公用同一个数据库),因此考虑用docker环境进行数据隔离,以达到同时运行多个任务

环境

服务器已安装Jenkins+docker
注意:

  1. Jenkins用户需要添加到docker组usermod -aG docker jenkins
  2. 已安装docker pipeline插件,不然会出现docker命令无法执行的错误

pipeline配置

  • 镜像已安装好数据库mysql
  • 需要注意启动docker时用户的设置(args '-u 0:0'),-u 0:0 表示使用root用户
  • 配置信息如下
pipeline {
    agent {
                docker {
                    image 'image-name'
                    args '-u 0:0 --ipc=host'
                }
            }
    stages {
        stage('check out') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: "*/${params.Branch}" ]], extensions: [], userRemoteConfigs: [[credentialsId: '*********', url: 'https://url.git']]])
            }
         }
        stage('build') {
            steps {
                sh '/etc/init.d/mysql start'
                sh '服务器上执行的命令,构建服务器,并启动'
            }
        }
        stage('test') {
            steps {
              dir('dirname'){
                sh 'dir到指定目录下执行对应命令'
                }
               sh '执行测试代码命令'
            }
        }
    }
    post {
            always {
                // One or more steps need to be included within each condition's block.
                publishHTML([allowMissing: false, alwaysLinkToLastBuild: true, keepAll: true, reportDir: './spec/mochawesome-report', reportFiles: 'merge_report.html', reportName: 'CYPRESS Report', reportTitles: 'cypress_report'])
            }
            failure {
                emailext(
                subject: "subject", 
                    to: 'useremail', 
                    mimeType: 'text/html',
                    body: "bodycontent"
                    
                )
            }
        }
}

在这里插入图片描述结合webhook,完美实现提交pull request,自动构建环境执行测试代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值