• Jenkins++:Pipeline脚本 V1.0


    // GitLab的凭证
    def git_auth="e3c9f3d5-6a52-4c10-86a3-80911a71bb24"
    // 项目GitLab仓库
    def git_url="http://192.168.1.101:82/test-team/tensquare_parent.git"
    //镜像的版本号
    def tag = "latest"
    //Harbor的url地址
    def harbor_url = "192.168.1.101:7701"
    //镜像库项目名称
    def harbor_project = "tensquare"
    //Harbor的登录凭证ID
    def harbor_auth = "737a6d3f-8be3-4ec0-a36a-b1afd9a8f380"
    
    node{
        
        //获取当前选择的项目名称
       def selectedProjectNames = "${project_name}".split(",")
       
        stage('拉取代码'){
            checkout([
                $class: 'GitSCM',
                branches: [
                    [
                        name: '*/${branch}'
                    ]
                ],
                doGenerateSubmoduleConfigurations: false,
                extensions: [
                    
                ],
                submoduleCfg: [
                    
                ],
                userRemoteConfigs: [
                    [
                        credentialsId: "${git_auth}",
                        url: "${git_url}"
                    ]
                ]
            ])
        }
        stage('编译,安装公共子工程') {
          sh "mvn -f tensquare_common  clean install"
        }
        stage('编译,打包微服务工程,上传镜像') {
            // 遍历所有项目   
            for(int i=0;i<selectedProjectNames.length;i++){
                 def projectInfo = selectedProjectNames[i];
                 echo "项目 | ${projectInfo} | 开始制作运行"
                 //当前遍历的项目名称
                 def currentProjectName = "${projectInfo}"
                 //制作镜像
                 sh "mvn -f ${currentProjectName} clean package dockerfile:build"
                 //定义镜像名称
                 def imageName = "${currentProjectName}:${tag}"
                 //对镜像打上标签
                 sh "docker tag ${imageName} ${harbor_url}/${harbor_project}/${imageName}"
                 //把镜像推送到Harbor
                withCredentials([usernamePassword(credentialsId: "${harbor_auth}", passwordVariable: 'password', usernameVariable: 'username')]) 
                {
                    //登录到Harbor
                    sh "docker login -u ${username} -p ${password} ${harbor_url}"
                    //镜像上传
                    sh "docker push ${harbor_url}/${harbor_project}/${imageName}"
                    sh "echo 镜像上传成功"
                }
                echo "项目 | ${projectInfo} | 制作完成"
                //删除本地镜像
                sh "docker rmi -f `docker images -q --filter reference=${imageName}`"
                //sh "docker rmi -f `docker images -q --filter reference=${harbor_url}/${harbor_project_name}/${imageName}`"
                echo "项目 | ${projectInfo} | 临时镜像已删除"
            }
        }
    }
  • 相关阅读:
    HTML表格的简单使用1
    守卫路由使用
    CSS高度塌陷问题解决方案
    CSS导航条nav简单样式
    Linux学习
    TYpeScript接口的使用
    javaScript中自定义sort中的比较函数,用于比较字符串长度,数值大小
    給eclipse添加字体,设置字体
    tomcat自动URLDecode解码问题(+号变空格)
    时间管理
  • 原文地址:https://www.cnblogs.com/codingmode/p/15802927.html
Copyright © 2020-2023  润新知