Jenkins pipeline 实践

Jenkins pipeline demo

前置条件

1、虚拟机内安装 JDK、Maven 、Docker,然后在全局工具配置里面进行路径设置。如果使用容器的话,进行相应目录挂载就行。

2、Jenkins插件方面:使用推荐的安装,如果有失败,重试或者手动下载,不需要额外插件就可以。

注:插件依赖都是POM维护的,可以官网查询,还有就是artifactId和插件名称不是一码事。

Pipeline使用方面

1、通过页面有两种,一种是直接写入,一种是从SCM中签出最新代码。

2、Pipeline脚本方面,推荐使用声明式,如果有复杂场景,可以嵌入脚本式代码。

simple code

pipeline {
    agent any
    tools {		//全局配置---工具引用
        maven 'maven3.5.4'
        jdk 'jdk8'
    }
    stages {
        stage('tool messages') {		//工具版本信息
            steps {
                sh 'java -version'
                sh 'mvn -v'
                sh 'docker version'
            }
        }
        stage('git clone') {
            steps {
                git branch: 'master',
                        credentialsId: '28ed55cd-e8a4-4888-ad54-ebf9cfe0e5f5',
                        url: '[email protected]:Hhdxf-xjp/springboot-CRUD.git'
            }
        }
        stage('mvn cmd ') {
            steps {
                sh 'mvn clean install'
            }
        }
        stage('build images') {
            steps {
                echo 'begin build images!'
                script {
                    def customImage = docker.build("xjp-image:v1")
                    customImage.inside {
                        sh 'ls'
                    }
                }

            }

        }
    }
}

补充:

最后构建镜像的话,根目录需要有DockerFile,当前工作区的目录,会自动挂载到容器中。

以上是简单的拉取代码打包成jar包,并进行构建成镜像的简单pipeline demo

补充功能

远程Job调用

第一步、安装Parameterized Remote Trigger插件。

第二步、创建用户—用于远程连接。

第三步、配置远程连接的地址和认证,地址配置本机就是本地调用

Jenkins>Manage Jenkins>Configure System

第四步、pipeline脚本区进行调用。

demo

//...
script{
	triggerRemoteJob job: 'git-clone', maxConn: 1, remoteJenkinsName: 'remoteHost',useCrumbCache: true, useJobInfoCache: true
}
//...
//详细语法参考https://jenkins.io/doc/pipeline/steps/Parameterized-Remote-Trigger/

如果所有任务均是独立可复用的(前提是该任务是可以通过参数配置的),这样的话,就可以使用pipeline进行任务执行顺序的任意组装,也可以实现单个阶段,单个任务的独立运行。

你可能感兴趣的:(工具使用)