一、简介
· Pipeline脚本是由Groovy语言实现。
· Pipeline支持两种语法:Declarative(声明式)和Scripted Pipeline(脚本式)语法。
· Pipeline也有两种创建方法:可以直接在Jenkins的Web UI 界面中输入脚本;也可以通过创建一个Jenkinsfile脚本放入项目源码库中(一般推荐在jenkins中直接从源代码控制中直接载入Jenkinsfile Pipeline这种方法)。
二、声明式
1.创建流水线项目。
2.项目General中的流水线选择:Hello world
3.代码解释
pipeline {
agent any //代理:把一些docker等等的环境加入到jenkins里
stages { //所有阶段:就是git拉代码->Maven打包->docker镜像容器->k8s中才允许。
stage('pull code') { //阶段 第一个阶段 拉取代码
steps { //步骤:在每个阶段执行什么步骤。
echo 'pull code' //拉取代码拉代码
}
}
stage('build project') { //阶段 第二个阶段 打包
steps { //步骤:在每个阶段执行什么步骤。
echo 'build projec'
}
}
}
}
三、脚本式
1.创建流水线项目。
2.项目General中的流水线选择:Scripted Pipeline
3.脚本解释(功能和声明式一样,只是写法不同)
node {
def mvnHome
stage('Preparation') { // for display purposes
// git拉取代码
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
// Get the Maven tool. // ** NOTE: This 'M3' Maven tool must be configured
// ** in the global configuration.
mvnHome = tool 'M3'
}
stage('Build Project') {
// Run the maven build。 maven构建
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
stage('Results') {
//发布运行jar包
junit '**/target/surefire-reports/TEST-*.xml' archiveArtifacts 'target/*.jar'
}
}
四、流水线脚本语法生成。
在流水线配置时,最下面有个流水先脚本语法
五、实践代码片段生成
1.拉取git代码:
如下图
选择:片段生成器--->checkout:check out from version control.
填写好对应的git资料就生成代码,并复制到脚本的steps里面去。
2.maven打包
方式一:如上图选择:sh:Shell Script.
写好需要mvn做的脚本:mvn clean package
复制脚本到流水线去。
3.发布
war方式发布:选择:deploy:Deploy war/ear to a container
复制脚本到流水线。
拉去代码----->编译打包----->发布完成