美文网首页
jenkins-流水线【2】流水线实现java网站发布

jenkins-流水线【2】流水线实现java网站发布

作者: 阿当运维 | 来源:发表于2021-05-08 14:07 被阅读0次

上篇写了关于流水线的基本语法和操作。今天记录一下流水线关于java项目的发布

回忆流程:
提交代码到gitlab----jenkins构建-----交给salve节点----(以后都在节点机器执行)
1.拉取代码---2.编译构建--3.测试--4.部署上线(部署前要备份原项目)

流水线的方式只不过是将传统的web界面配置改为 代码流程 一样去实施。分阶段的执行和打印日志。方便我们后期排错。
看下图:


image.png

配置的代码可以自己编写,也可以借助生成器生成。我们将传统的web配置的每个步骤,都搬到流水线语法中,生成每一步的代码即可。
1.拉取代码 (填写相应信息,生成)

image.png
2.编译构建 ,这个只是一个shell 执行的mvn命令
image.png
3.测试 (这里我只是输出一个信息,略)
4.部署上线(信息就和ssh构建发送文件web配置时的一样的填写,不明白的可以看之前的文章https://www.jianshu.com/p/1528fa9e4f30
image.png

全部生成后。填入step块中。

pipeline {
    agent {
        label '112'
    }
    parameters {
        gitParameter branch: '', branchFilter: '.*', defaultValue: 'master', description: '你选择的分支?', name: 'branch', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
    }

    stages {
        stage('拉取git代码') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '$branch']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'd386c248-cf59-45c5-9731-b8f2d42411e9', url: 'http://192.168.1.112:85/webservice/java_web.git']]])
            }
        }
        stage('编译构建') {
            steps {
                sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
            }
        }
        stage('项目测试') {
            steps {
                echo 'Java Web Project Test is Suessful '
            }
        }
        stage('部署上线') {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'gitlab服务器', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''tomcat=/usr/local/tomcat
                cd $tomcat/webapps
                mv ROOT.war /data/backup/ROOT_$(date +"%F_%T").war
                mv ly-simple-tomcat-0.0.1-SNAPSHOT.war  ROOT.war
                pid=$(ps -ef|grep tomcat|grep -v \'grep\'|awk \'{print $2}\') 
                [ -n "$pid" ] &&  kill -9 $pid
                nohup  /usr/local/tomcat/bin/startup.sh''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/usr/local/tomcat/webapps', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/*.war')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

            }
        }
    }
}

agent 和 parameters 分别是salve 节点和参数化。


image.png
image.png

完成后,第一次构建是初始化,以后进入正轨。
全程没有配置触发器,这个后面在更新。
最终点击构建,触发git参数化构建,选择完毕,构建完成。


image.png

相关文章

网友评论

      本文标题:jenkins-流水线【2】流水线实现java网站发布

      本文链接:https://www.haomeiwen.com/subject/tuzsdltx.html