Open felix-cao opened 3 years ago
五 Jenkins pipeline 脚本
中,${params.params}
为一个 Json
串时无法写入到文件,需要为每个引号转意。
参考: https://www.cnblogs.com/afei654138148/p/14976490.html
post {
always {
bat ""
echo '构建结束...'
}
success {
echo '恭喜您,构建成功!!!'
mail subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 执行成功",
body: """
<div id="content">
<h1>CI报告</h1>
<div id="sum2">
<h2>Jenkins 运行结果</h2>
<ul>
<li>jenkins的执行结果 : <a>jenkins 执行成功</a></li>
<li>jenkins的Job名称 : <a id="url_1">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a></li>
<li>jenkins的URL : <a href='${env.BUILD_URL}'>${env.BUILD_URL}</a></li>
<li>jenkins项目名称 : <a>${env.JOB_NAME}</a></li>
<li>Job URL : <a href='${env.BUILD_URL}'>${env.BUILD_URL}</a></li>
<li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
</ul>
</div>
<div id="sum0">
<h2>GIT 信息</h2>
<ul>
<li>GIT项目的地址 : <a>${git_url}</a></li>
<li>GIT项目当前的分支名 : ${ref}</li>
<li>GIT最后一次提交的commitID : ${commits_id}</li>
</ul>
</div>
</div>
""",
charset: 'utf-8',
from: 'hualala@lanxiang.local',
mimeType: 'text/html',
to: "$user_email"
//to : "${Recipient}"
}
failure {
echo '抱歉,构建失败!!!'
mail subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 执行失败",
body: """
<div id="content">
<h1>CI报告</h1>
<div id="sum2">
<h2>Jenkins 运行结果</h2>
<ul>
<li>jenkins的执行结果 : <a>jenkins 执行失败</a></li>
<li>jenkins的Job名称 : <a id="url_1">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a></li>
<li>jenkins的URL : <a href='${env.BUILD_URL}'>${env.BUILD_URL}</a></li>
<li>jenkins项目名称 : <a>${env.JOB_NAME}</a></li>
<li>Job URL : <a href='${env.BUILD_URL}'>${env.BUILD_URL}</a></li>
<li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
</ul>
</div>
<div id="sum0">
<h2>GIT 信息</h2>
<ul>
<li>GIT项目的地址 : <a>${git_url}</a></li>
<li>GIT项目当前的分支名 : ${ref}</li>
<li>GIT最后一次提交的commitID : ${commits_id}</li>
</ul>
</div>
</div>
""",
charset: 'utf-8',
from: 'IBM_xxx@xxx.local',
mimeType: 'text/html',
to: "$user_email"
}
unstable {
echo '该任务已经被标记为不稳定任务....'
}
changed {
echo ''
}
}
通过
Jenkins
对外暴露的API
去build
一个job
一、远程触发 URL 及 token
如上图, 在
Build Triggers
模块里勾选Trigger builds remotely (e.g., from scripts)
token
自定义设置Authentication Token
URL
为JENKINS_URL/job/msg_notification/build?token=TOKEN_NAME
or/buildWithParameters?token=TOKEN_NAME
二、API token 或 password
2.1 username:password
我们既可以使用用户名和密码的方式进行用户身份验证,操作
API
进行Job
的创建2.2 username:API token
也可以使用
API token
进行认证,使用API token
, 而不使用Jenkins
用户真实的密码,更为安全. 我们一般都用这种方式Jenkins
中API token
的配置方法:Accounts icon -> configure -> API Token -> Add New token
->Generate
三、POST 方式传递参数
在
pipeline
里设置parameters
四、传 JSON 数据
在
pipeline
里设置parameters
五、Jenkins pipeline 脚本
sh "printenv"
是打印Jenkins
全局变量client34
是添加的credential ID
,credentials
的类别为SSH Username with private key
六、Blue Ocean
Blue Ocean
重新思考Jenkins
的用户体验,从新开始设计Jenkins Pipeline
, 但仍然与自由式作业兼容,Blue Ocean
减少了混乱而且进一步明确了团队中每个成员Blue Ocean
的主要特性包括:持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。
Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
个性化 以适应团队中每个成员不同角色的需求。
在需要干预和/或出现问题时 精确定位 。Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。
安装 Blue Ocean
Manage Jenkins
->Manage plugins
->Available
-> 输入Blue Ocean
安装后,回首页,点左侧导航处的Open Blue Ocean
Reference