概述
现在Jenkins的pipeline越来越流行了,尤其是在Openshift和K8S出来后更加流行了;但是有学习成本,包括 pipeline 有其相应的语法和原有的图形界面功能设置转化为pipeline语句,今天来介绍下如何查询自己想要的功能转化成pipeline的语句。
查询入口
![](https://img.haomeiwen.com/i13962638/8a71b080490425ea.png)
![](https://img.haomeiwen.com/i13962638/e8e32245f0dfd1a8.png)
![](https://img.haomeiwen.com/i13962638/bef80590e64fd39f.png)
第一张图是要创建一个pipeline的job任务,第二和第三张图是pipeline语法的入口,
片段生成器
![](https://img.haomeiwen.com/i13962638/eaccd47037738264.png)
片段生成器的作用就是将之前在图形界面配置的东西转化为pipeline语句片段。
-
举个例子(不使用pipeline的时候)
image.png
image.png
在使用pipeline之前,我们可以再参数化构建过程中添加一个选项参数,让job在运行的时候可以弹出一个框让我们选择部署环境。
在使用pipeline的时候如何通过自己写的语句来做呢?
-
去pipeline语法查询页面的片段生成器,选择properties: Set job properties,接下来的配置就和图形化配置一样了。
image.png
-
配置好之后,点击第二张图的生成pipeline脚本按钮,就能生成语句了。生成的语句中有些是默认字段,有默认值,这些字段是可以删除的。
image.png
-
现在我将这个复制到Jenkins job pipeline里头
image.png
pipeline{
agent any
stages{
stage("demo"){
steps{
script{
properties([[$class: 'JiraProjectProperty'], [$class: 'BuildConfigProjectProperty', name: '', namespace: '', resourceVersion: '', uid: ''], parameters([choice(choices: ['dev', 'uat', 'pre', 'prod'], description: '请选择要发布的应用环境', name: 'env')])])
}
}
}
}
}
-
然后点击立即构建。
image.png
-
第一次的时候并不会弹出选项框让你选择,因为第一次运行需要将pipeline语句转换为输入框。可以看到输出日志里没有其他东西。
image.png
-
接下来再次点击运行,这时候会提示使用参数运行。
image.png
-
然后就会有选项框让你选择了
image.png
-
选择一个环境进行运行,结束后进入配置项
image.png
-
可以看到会有配置的图形化界面出来,这个是从pipeline里面映射出来的,如果直接编辑图形界面是无法映射到pipeline里头的。
image.png
全局变量
说完片段生成器接下来说全局变量,这个变量是Jenkins自带的,变量能够获取一些信息和完成一些操作(也就是一些functions)
![](https://img.haomeiwen.com/i13962638/4be49d24bf69039f.png)
获取变量值并打印
接下来我以openshift.cluster和openshift.project这两个变量作为测试,打印出当前集群地址和项目名:
pipeline {
agent any
stages {
stage('Example') {
steps{
script {
openshift.withCluster() {
def clusterUrl = openshift.cluster();
echo "Now using cluster with url ${clusterUrl}"
def projectName = openshift.project();
echo "Now using project ${projectName}"
}
}
}
}
}
}
运行输出日志可以看到这两个变量已经被打印出来了。
![](https://img.haomeiwen.com/i13962638/719913fbaa871553.png)
使用“变量”自带的functions
以openshift.newProject为例创建一个项目
![](https://img.haomeiwen.com/i13962638/b44a3e222436a504.png)
pipeline {
agent any
stages {
stage('Example') {
steps{
script {
openshift.withCluster() {
openshift.newProject("demo","--display-name=阿坡")
}
}
}
}
}
}
输出日志,成功的话基本没啥信息
![](https://img.haomeiwen.com/i13962638/68c569d85779bbea.png)
去openshift那里查询,现在可以看到创建好的项目
![](https://img.haomeiwen.com/i13962638/bb9883a0672cbd3c.png)
总结
这篇文章只是教大家查询文档的方法,里面有很多功能是在需要用的时候再去查找的,大家可以先看看文档有哪些功能,以后需要用的时候再来详细查找也可以。
网友评论