Jenkins FreeStyle or Pipeline Job
FreeStyle Job:
1. 需要在页面添加模块配置项与参数完成配置
2. 每个Job仅能实现一个开发功能
3. 无法将配置代码化,不利于Job配置迁移与版本控制
4. 逻辑相对简单,无额外学习成本
Pipeline Job:
1. 所有模块,参数配置都可以体现为一个Pipeline脚本
2. 可以定义多个Stage构建为一个Pipeline工作集
3. 所有配置代码化,方便Job配置迁移与版本控制
4. 需要Pipeline脚本语法基础,学习成本高
Pipeline 基本架构
1. 所有代码块包裹在Pipeline{} 层内
2. stages{} 层用来包含Pipeline中的所有stage子层
3. stage{} 层用来包含具体需要编写任务的steps{} 子层
4. steps{} 层用来添加我们具体需要调用的模块语句
Pipeline示例1
pipeline{
agent any // 定义pipeline在哪台jennkins主机上运行,可以使用any, none 或具体的Jenkins node主机名
environment{ // 定义全局环境变量,也可以定义在具体的Stage区域中
host='test.example.com'
user='deploy'
}
stages{ // 任务区域
stage('build'){ // 任务阶段
steps{ // 任务步骤
sh 'cat $host'
echo $deploy
}
}
}
}
Pipeline示例2
#!groovy pipeline{
agent {node {label 'master'}} environment {
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
} parameters {
choice(
choices: 'dev\nprod',
description: 'choose deploy environment',
name: 'deploy_env'
)
string(name: 'version', defaultValue: '1.0.0', description: 'bulder version')
} stages{
stage("Checkout test repo"){
steps{
sh 'git config --global http.sslVerify false'
dir("${env.WORKSPACE}"){
git branch: 'master', credentialsId: "aad1a0c7-29ef-482c-b5dc-86dc0416fb30", url: "https://root@gitlab.pso.com/root/test-repo.git"
}
}
}
stage("Print env variable"){
steps{
dir("${env.WORKSPACE}"){
sh """
echo "[INFO] Print env variable"
echo "Current deployment environment is $deploy_env" >> test.properties
echo "The build is $version" >> test.properties
echo "[INFO] Done..."
"""
}
}
}
stage("Check test properties"){
steps{
dir("${env.WORKSPACE}"){
sh """
echo "[INFO] Check test properties"
if [ -s test.properties ]
then
cat test.properties
echo "[INFO] Done..."
else
echo "test.propreties is empty"
fi
"""
echo "[INFO] Build finished..."
}
}
}
}
}
提示:git工具关闭SSL验证 -> git config --system http.sslVerify false
Jenkins FreeStyle or Pipeline Job的更多相关文章
- jenkins创建multibranch pipeline
参考以下文章进行实践: https://jenkins.io/doc/pipeline/tour/hello-world/#what-is-a-jenkins-pipeline (看见一个介绍的还不错 ...
- 好用的 convert freestyle jenkins jobs to pipeline 插件使用
1. 安装 安装,重启即可,非常简单 2. 使用 原有配置,主要列出执行 生成的jenkins pipeline 3. 构建效果 4. 参考资料 https:// ...
- 试用Jenkins 2 的 Pipeline 项目
目前Jenkins最新的版本是2.7,现在试用一下pipeline类型的项目,本来想构建一个1.651版本的Jenkins为例,无奈大陆的网络 访问github不稳定,只好改为简单的工程. 目前有一个 ...
- Jenkins高级用法 - Pipeline 安装
一.总体介绍 总体介绍内容摘自 玩转Jenkins Pipeline(大宝鱼) 1.核心概念 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的 ...
- Docker: Jenkins里的pipeline编写基本技巧
Jenkins里,先新建一个pipeline项目 Pipeline Syntax 在Sample Step里选择需要的插件,如果不存在,就去系统管理,插件管理里,进行安装. 如果源码管理工具用的是gi ...
- jenkins的流水线pipeline+项目实验php
声明:实验环境使用Jenkins的应用与搭建的环境 新建一个流水线 pipeline脚本语法架构 node('slave节点名'){ def 变量 #def可以进行变量声明 stage('阶段名A') ...
- CI/CD之Gitlab集成Jenkins多分支pipeline实现质量检测和自动发布
本次实施主要实现: 代码提交gitlab,自动触发Jenkins构建 gitlab发起Merge Request, 需要Jenkins检查通过才可以merge,实现代码review和质量管控 gitl ...
- jenkins中的pipeline学习
Jenkins pipeline 升级打怪攻略(二): http://haurqb42j0gnc7zyxam.exp.bcevod.com/mda-jg9eq66184z5manh/mda-jg9eq ...
- Jenkins系列之pipeline语法介绍与案例
Jenkins Pipeline 的核心概念: Pipeline 是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. ...
随机推荐
- Oracle之rman常用命令及维护(51CTO风哥rman课程)
list 查看数据库备份的信息 查询数据库对应物 list incarnation; list backup summary; 列出当前备份信息及汇总 B是备份 F是全备 A是归档 第三个A是是否有效 ...
- 回车(CR)换行(LF)的来历及区别
转自https://blog.csdn.net/lw370481/article/details/8229344 一.回车”(Carriage Return)和“换行”(Line Feed)起源 回车 ...
- [译]关于JavaScript 作用域你想知道的一切
原文连接 在学习js的过程对闭包什么的,理解不好,偶然搜到这篇文章.豁然开朗,随翻译. Javacript 中有一系列作用域的概念.对于新的JS的开发人员无法理解这些概念,甚至一些经验丰富的开发者也未 ...
- element自定义表单验证
element-ui框架下修改密码弹窗进行表单验证. 除了基础校验,密码不为空,长度不小于6字符,需求中还需校验密码由数字和字母组合. 处理代码如下: <el-dialog :visible.s ...
- 剑指Offer——连续子数组的最大和
题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向 ...
- react native 或 flutter 开发app
react-native react native和原生Android/ios: https://www.oschina.net/news/97466/should-we-use-react-nati ...
- c++ caffe 输出 activation map 、 层参数
python输出activation map与层参数:https://blog.csdn.net/tina_ttl/article/details/51033660 caffe::Net文档: htt ...
- Django中对静态文件的支持(转)
英文原文:[http://agiliq.com/blog/2013/03/serving-static-files-in-django/] 译文:[http://segmentfault.com/a/ ...
- 3.Github介绍
很多人都知道,Linus在1991年创建了开源的Linux.从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的 ...
- Sping-Spring JDBC框架
JDBC框架概述 在使用普通的JDBC数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等.但Spring JDBC框架负责所有的底层细节,从开始打开连接,准备和执行SQL语句,处理 ...