jenkis 使用pipeline编排

jenkis 使用pipeline编排

  • pipeline 使用编码的格式来定制整个jenkins构建过程,可以将单个及多个任务链接起来,实现复杂流程编排及可视化工作。

1,安装pipeline

  • 在插件中安装pipeline
  • 添加任务

2,使用声明式构建任务语法

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
                echo 'pull code'
            }
        }
     stage('build project') {
            steps {
                echo 'build project'
            }
        }
     stage('publish project') {
            steps {
                echo 'publish project'
            }
        }    
    }
}

3, 使用流水线语法进行拉取代码

  • 使用流水语法工具可以进行一些步骤构建等

a3c299477e23786eb394fb29b13dd6ee.png

7081c32b3cb859016e5ca1b255fa82eb.png

7d19fcb95f98adebe8e7783ea1c72cb2.png

将脚本复制粘贴到流水线steps中
c8ff57933bf2003e98a6f84b4859712e.png

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
               checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
            }
        }
    }
}

4, 使用流水线打包代码

  • shell script --> mvn clean all
    aaf154a66c06b0b216739ef92fa157ed.png
  • copy 相关代码到流水线构建代码中
pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
               checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
            }
        }
     stage('build project') {
            steps {
            sh 'mvn clean package'
                }
        }
    }
}


14b0ec86e3f9b32cd1e8a277d64d22cd.png

5, 使用流水线语法部署项目

deploy :Deploy war/ear to a container -->WAR/EAR files[targs/*.war]-->Containers[
Tomcat 8.x RemoteCredentials
Tomcat URL [http://192.170.11.169:8080]


1dceb4541ca36881c1445dff79cff648.png

将生成的代码复制到流水线steps中

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
               checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
            }
        }
     stage('build project') {
            steps {
                sh 'mvn clean package'
                }
        }
    stage('publish project') {
            steps {
                deploy adapters: [tomcat8(credentialsId: '35b26f6a-4416-404d-9d28-025babbcdc39', path: '', url: 'http://192.170.11.169:8080')], contextPath: null, war: 'target/*.war'
                }
        }
    }
}


54afd157a860fad99df0e64aa6705cbc.png

应用保存后构建完成

6,使用jenkinsfile+gitlab 存储构建步骤

将构建的流水步骤一起添加到相对于的代码仓库一级目录,便于相对管理以及版本控制
在代码一级目录创建jenkinsfile

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
               checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
            }
        }
     stage('build project') {
            steps {
                sh 'mvn clean package'
                }
        }
    stage('publish project') {
            steps {
                deploy adapters: [tomcat8(credentialsId: '35b26f6a-4416-404d-9d28-025babbcdc39', path: '', url: 'http://192.170.11.169:8080')], contextPath: null, war: 'target/*.war'
                }
        }
    }
}

  • 将代码上传到github ,新增构建job,流水线定义选择为【pipeline script form SCM】--> 【git】-->【添加git认证】-->脚本路径填写为 jenkinsfilename-->应用保存-->构建
    f3fc8a0a108611f580733d852a8ed587.png

f3fc8a0a108611f580733d852a8ed587.png

posted @ 2022-05-06 20:57  老实人张彡  阅读(200)  评论(0编辑  收藏  举报