pipeline
jenkins1.x主要是实现的持续集成过程,集成各个插件,但是终究需要人为手工的操作,如果job太复杂,人为容易出错。于是jenkins2.x开始流行pipeline的写法,以代码的方式来进行job的构建。
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building'
sh 'cd /xxx;mvn clean install'
}
}
stage('deploy'){
steps{
echo 'deploy'
sh 'cd /xxxx;sh deploy.sh'
}
}
stage('restart'){
steps{
echo 'restart'
sh 'cd /xxx/;sh restart.sh'
}
}
stage('AutoTest'){
steps{
echo 'AutoTest'
sh '/usr/bin/curl -X post http://remote_user:11903594f9e560e7b4441d0b255029b0bd@1x.xx.xx:8070/jenkins/view/....'
}
}
stage('SonarAnalysis') {
steps {
echo 'SonarAnalysis'
sh 'cd /xx;nohup sh sonar.sh &'
}
}
}
post {
always {
emailext (
body: '${DEFAULT_CONTENT}', from: '', replyTo: '', subject:'${DEFAULT_SUBJECT}', to: '${DEFAULT_RECIPIENTS}'
)
}
}
}
agent: 在任何可用的机器上执行pipeline
stage:表示这个Pipeline的某一个执行阶段
steps: 包含一个或者多个在stage块中执行的step序列
post:可以根据pipeline的状态来执行一些操作
问题
1.Waiting for next available executor 正在等待下一个可用的执行器
原因:节点同时执行多个任务,没有执行器指定当前流水线任务。
解决: Jenkins > 系统管理 > 节点管理 ,左下角找到自己任务的节点,可以看到有很多任务正在执行,可以点击红叉停掉。

增加任务执行器数量:
1.找到页面: Jenkins > 系统管理 > 管理节点 ,
2.找到运行 case 的节点所在行,点击最右边 x 配置按钮,跳转进入节点配置页面,
3.看 “# of executors”选项的配置值为多少? Jenkins 默认是1, 因此如果在该台机器上,你已经有任务在运行了,那么构建第二个任务,就会出现 Wait for next available executor.
本文探讨了jenkins 2.x中pipeline的引入,如何通过代码驱动的构建流程来优化持续集成,减少人为操作错误,并详细介绍了pipeline的结构,包括agent配置、阶段划分(如Build、deploy、restart、AutoTest和SonarAnalysis)以及post阶段的自定义操作。

6249

被折叠的 条评论
为什么被折叠?



