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的更多相关文章

  1. jenkins创建multibranch pipeline

    参考以下文章进行实践: https://jenkins.io/doc/pipeline/tour/hello-world/#what-is-a-jenkins-pipeline (看见一个介绍的还不错 ...

  2. 好用的 convert freestyle jenkins jobs to pipeline 插件使用

    1. 安装      安装,重启即可,非常简单   2. 使用     原有配置,主要列出执行     生成的jenkins pipeline   3. 构建效果   4. 参考资料 https:// ...

  3. 试用Jenkins 2 的 Pipeline 项目

    目前Jenkins最新的版本是2.7,现在试用一下pipeline类型的项目,本来想构建一个1.651版本的Jenkins为例,无奈大陆的网络 访问github不稳定,只好改为简单的工程. 目前有一个 ...

  4. Jenkins高级用法 - Pipeline 安装

    一.总体介绍 总体介绍内容摘自 玩转Jenkins Pipeline(大宝鱼) 1.核心概念 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的 ...

  5. Docker: Jenkins里的pipeline编写基本技巧

    Jenkins里,先新建一个pipeline项目 Pipeline Syntax 在Sample Step里选择需要的插件,如果不存在,就去系统管理,插件管理里,进行安装. 如果源码管理工具用的是gi ...

  6. jenkins的流水线pipeline+项目实验php

    声明:实验环境使用Jenkins的应用与搭建的环境 新建一个流水线 pipeline脚本语法架构 node('slave节点名'){ def 变量 #def可以进行变量声明 stage('阶段名A') ...

  7. CI/CD之Gitlab集成Jenkins多分支pipeline实现质量检测和自动发布

    本次实施主要实现: 代码提交gitlab,自动触发Jenkins构建 gitlab发起Merge Request, 需要Jenkins检查通过才可以merge,实现代码review和质量管控 gitl ...

  8. jenkins中的pipeline学习

    Jenkins pipeline 升级打怪攻略(二): http://haurqb42j0gnc7zyxam.exp.bcevod.com/mda-jg9eq66184z5manh/mda-jg9eq ...

  9. Jenkins系列之pipeline语法介绍与案例

    Jenkins Pipeline 的核心概念: Pipeline 是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. ...

随机推荐

  1. 运用JS设置cookie、读取cookie、删除cookiev

    JS设置cookie: 假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为: document.cookie=&q ...

  2. Exception in thread "main" java.lang.IllegalArgumentException: System memory 202768384 must be at least 4.718592E8. Please use a larger heap size.

    Spark-submit 提交任务时候报错 Exception in thread "main" java.lang.IllegalArgumentException: Syste ...

  3. 使用Nana进行C++ GUI开发

    Nana官网地址:nanapro.org 简单示例:NanaDemo.cpp #include <nana/gui.hpp> #include <nana/gui/widgets/b ...

  4. oracle入门(7)——存储过程

    [本文介绍] 熟悉了PL/SQL语法后,实现java调用oracle存储过程才是主要目的.本文将介绍如何写存储过程,java如何调用存储过程. [存储过程介绍] 抛开专业的描述,存储过程就是在数据库里 ...

  5. (0.1)windows下的mysql配置使用步骤

    目录 1.基于windows平台的mysql项目场景 2.mysql数据库运行环境准备 3.下载mysql 4.通过Installer方式(即msi方式)安装mysql 5.卸载mysql ————— ...

  6. java-mybaits-00503-延迟加载

    1.什么是延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...

  7. 草稿:SCADA全局底层框架架构

    一:全局基于单文档MFC程序开发. 二:全局每个功能模块之间完全隔离, 模块之间的数据交流必须使用主板模板. 三:每个功能块全部都自己的线程,除了PLC功能块 其他都是窗口线程 四:各个功能命名的前缀 ...

  8. isEnable() 和 isDisplayed() 和 isSelected()

    isEnable().isDisplayed()和isSelected() 1.以上三个为布尔类型的函数 2.isEnable用于存储input.select等元素的可编辑状态,可以编辑返回true, ...

  9. yii2 商品上下架

    视图层 <td><?php if($value['is_on_sale'] == 1) {?><img src="../web/images/yes.gif&q ...

  10. Python3 安装第三方包

    打开cmd(切记是cmd,不是Python3.6那个敲代码环境)输入 pip3 install numpy 即可(安装numpy包)