首页 > 其他分享 >jenkinsfile与项目做隔离

jenkinsfile与项目做隔离

时间:2023-02-02 17:26:00浏览次数:53  
标签:隔离 项目 value name environment steps jenkinsfile true STAGE

@Library('siheng-devops') _

pipeline {
    agent { label 'jnlp-slave'}
    options {
        timeout(time: 200, unit: 'MINUTES')
        gitLabConnection('gitlab')
    }
    environment {
        PROJECT = "$NAME"
        IMAGE_REPO = "harbor.service-k8s-test.oigbuy.com/spring-cloud/$NAME"
        IMAGE_CREDENTIAL = "login-Harbor"
        DINGTALK_CREDS = credentials('dingTalk')
        GITURL = "$GIT" #"$GIT为jenkins传递参数"
        GITBRANCH = "$BRANCH"
        DVERSION = "$VERSION"
        CODETYPE = "$TYPE"
        DSTAGE = "$STAGE"
        DENV = "$ENV"
        FLYWAYIP = "$FLYWAYIP"
        FLYWAYPORT = "$FLYWAYPORT"
        FLYWAYDB = "$FLYWAYDB"
        FLYWAYUSER = "$FLYWAYUSER"
        FLYWAYPASSWORD = "$FLYWAYPASSWORD"
        FLYWAYFILE = "$WORKSPACE/$FLYWAYFILE"
    }
    stages {
        stage('checkout') {
            steps {
                container('tools') {
                    checkout([$class: 'GitSCM', branches: [[name: "*/$GITBRANCH"]], extensions: [], userRemoteConfigs: [[credentialsId: 'git_jenkins', url: "$GITURL"]]])#"此为拉取项目代码"
                }
            }
        }
        stage('sonar') {
            when {
                anyOf{
                    environment name: 'STAGE', value: 'sonar'
                    environment name: 'STAGE', value: 'all'
                }
            }
            steps {
                container('tools') {
                    script {
                       devops.scan().start()
                    }
                }
            }
        }
        stage('unitest'){
            when {
                anyOf{
                    environment name: 'STAGE', value: 'unitest'
                    environment name: 'STAGE', value: 'all'
                }
            }
            steps {
                echo "Unit Test Stage Skip..."
                }
        }
        stage('sql') {
            when {
                anyOf{
                    environment name: 'STAGE', value: 'sql'
                    environment name: 'STAGE', value: 'all'
                }
            }
            steps {
                container('tools') {
                    script{

                        sh "flyway -url=jdbc:mysql://$FLYWAYIP:$FLYWAYPORT/$FLYWAYDB?charset=utf8mb4  -user=$FLYWAYUSER -password=$FLYWAYPASSWORD -locations=filesystem:$FLYWAYFILE -baselineOnMigrate=true -cleanDisabled=true migrate"
                        sh "flyway -url=jdbc:mysql://$FLYWAYIP:$FLYWAYPORT/$FLYWAYDB?charset=utf8mb4  -user=$FLYWAYUSER -password=$FLYWAYPASSWORD -locations=filesystem:$FLYWAYFILE -baselineOnMigrate=true -cleanDisabled=true info"
                    }
                }
            }
        }
        stage('package') {
            when {
                anyOf{
                    environment name: 'STAGE', value: 'package'
                    environment name: 'STAGE', value: 'all'
                }
            }
            steps {
                container('tools') {
                    sh 'mvn clean package -Dmaven.test.skip=true'
                    script{
                        devops.docker(
                            "${IMAGE_REPO}",
                            "${VERSION}",
                            IMAGE_CREDENTIAL
                        ).build().push()
                    }
                }
            }
         }
        stage('deploy') {
            when {
                anyOf{
                    environment name: 'STAGE', value: 'deploy'
                    environment name: 'STAGE', value: 'all'
                }
            }#判断传递参数是否执行此段代码
            steps {
                container('tools') {
                    script{
                        devops.deploy("manifests",true,"manifests/deployment.yaml").start()
                    }
                }
            }
        }
    }
    post {
        success {
            script{
                devops.notificationSuccess(PROJECT,"dingTalk")
            }
        }
        failure {
            script{
                devops.notificationFailed(PROJECT,"dingTalk")
            }
        }
    }
}

 

标签:隔离,项目,value,name,environment,steps,jenkinsfile,true,STAGE
From: https://www.cnblogs.com/quemengqio/p/17086691.html

相关文章

  • DockerCompose安装和部署微服务项目(个人笔记)
    DockerCompose安装和部署微服务项目1.安装DockerCompose1.1下载1.2修改文件权限修改好每个服务模块的yml整个cloud-demo文件夹上传到服务器某个文件夹docker和docker-com......
  • vue.js客服系统实时聊天项目开发(十七)解决url get传参后进行base64解密问题
    有些参数需要在url的GET里传递,但是为了防止特殊字符问题,我转成了base64编码。但是js进行解码的时候,总是报错:报错:Failedtoexecute'atob'on'Window':Thestringto......
  • MySQL隔离级别、锁、SQL优化
    一、事务隔离级别1.1事务-事务是逻辑上的一组操作,要么全部执行,要么全部不执行。-事务(Transaction)是并发控制单位,是用户定义的一个操作序列,这些操作要么都做,要么都不......
  • 创建第一个Django项目
    本渣渣不专注技术,只专注使用技术,不是一个资深的coder,是一个不折不扣的copier【提示】——项目开发环境,Windows10、Python3.6.6、Django1.11、Pycharm2017.31、Django管理工......
  • 物联网毕业设计项目选题:harmonyos鸿蒙系统开发智能小车案例-hi3861v100开发板-留言领
    华清远见FS-Hi3861开发套件,支持HarmonyOS3.0系统。开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器、执行器、NFC、显示屏等,同时还配套丰富的拓展模块。开......
  • UE4将蓝图从一个项目迁移到
    一、蓝图迁移蓝图迁移很简单,在内容中选中你的蓝图文件夹,鼠标右键->迁移,选择你要嵌入的工程的content文件夹,完成迁移。二、迁移后带来的问题如上图所示,将蓝图迁......
  • Git 项目常用提交emoji
    emojiemoji代码commit说明......
  • UE4如何使用另一个项目工程中的插件
    应用场景:由于本人去年刚接触UE4,里面有太多不懂的东西,先记在这里。一个现有的项目中只用的TCP/UDP通信的插件,我想搬到自己新建的项目中改如何做呢?1、新建插件目录打开......
  • 从开源项目学技术
    目前在全力开发一个模型训练相关的开源项目,该项目技术栈相当丰富,而且各种技术都是比较新,所以本系列拆解该开源项目的技术。编程语言:主要用Python,Python服务中有异步编......
  • SeckillFramework项目开发错误记录
    Anerrorhappenedduringtemplateparsing(template:"classpathresource[templates/login.html]"-line34,col18)原因:由于添加了type="tel",删除恢复@mapp......