当前位置:网站首页>Jenkins入门(二)声明式流水线Jenkins Pipeline
Jenkins入门(二)声明式流水线Jenkins Pipeline
2020-11-06 22:33:00 【超_Charles】
1. Jenkins Pipeline 基本概念
流水线是用户定义的一个CD流水线模型 。流水线的代码定义了整个的构建过程, 他通常包括构建, 测试和交付应用程序的阶段 。 Jenkins Pipeline
(或简称为"Pipeline")是一套插件,将持续交付的实现和实施集成到Jenkins中。 持续交付Pipeline
自动化的表达了这样一种流程:将基于版本控制管理的软件持续的交付。 Jenkins Pipeline 的定义通常被写入到一个Jenkinsfile
文本文件中,该文件可以被放入项目的源代码控制库中。
2.Jenkinsfile 基础语法
pipeline { // 特定语法,pipeline 块定义了整个流水线中完成的所有的工作
agent any // agent为整个流水线分配一个执行器 (在节点上)和工作区
stages { // 所有流程(状态)的外层块,仅有一个
stage('Build') { // 每个stage为一流程,定义名称
steps { // 步骤块,内部包含具体操作
sh 'make' // sh操作,其引号间的文字会当成shell直接执行
}
}
stage('Test'){
steps {
sh 'make check'
junit 'reports/**/*.xml' //junit使用匹配的定义测试xml进行单元测试
}
}
stage('Deploy') {
steps {
sh 'make publish'
}
}
}
}
3.创建 Hello World 流水线
- 登录
Jenkins
,新建任务(New Item),选择流水线
,输入工程名称Hello Pipeline
,确定。 - 填写描述,勾选
参数化构建过程(This project is parameterized)
。 - 添加参数,选择
字符参数(String parameter)
,并设置这个字符串参数(名称,默认值,描述),这样我们在Jenkinsfile中就可以取到这个值了。 - 向下滑动到
流水线
,定义选择Pipeline script
,脚本输入如下内容,然后保存。
pipeline {
agent any
environment { //环境变量
GREETING="Hello"
}
stages{
stage('打招呼') {
steps{
sh 'echo "$GREETING $TITLE"'
}
}
}
post { //构建完成后置操作
aborted { //如果构建中断,则执行
echo '构建被中止!'
}
success { //构建成功执行
echo '构建成功!'
}
failure { //构建失败执行
echo '构建失败!'
}
}
}
-
点击
Build with Parameters(参数化构建)
,然后开始构建
。 -
构建完成输出界面:
-
把鼠标放在打招呼下边的绿色框上,点出现的
logs
,可以看到输出了预期的值。 -
找到左下角的
Build History(构建历史)
的构建版本号,如当前是#1
,点进去,选择Console Output
查看详细的执行日志。
# 成功Console Output
Started by user charles
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /home/jenkins/root/workspace/Hello Pipeline
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (打招呼)
[Pipeline] sh
+ echo 'Hello Jenkins Pipeline'
Hello Jenkins Pipeline
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] echo
构建成功!
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
版权声明
本文为[超_Charles]所创,转载请带上原文链接,感谢
https://my.oschina.net/chaoo/blog/4703690
边栏推荐
- Exclusive interview of guests at | 2020 PostgreSQL Asia Conference: Wang Tao
- Nodejs中使用jsonwebtoken(JWT)生成token的场景使用
- Qt音视频开发46-视频传输UDP版
- 2020年新规,微信封号怎么快速解除?
- A good thing for working people -- to temper the will of iron and steel requires such an efficient computer
- Nanjing logo design and production, guide VI system design
- vue3 新特性
- 2020-08-15: under what circumstances should data tasks be optimized?
- Utility class functions (continuous update)
- 2020-08-15:什么情况下数据任务需要优化?
猜你喜欢
2020-08-14:数据任务的执行引擎用的哪些?
迅为-iMX6ULL开发板上配置AP热点
How to make characters move
移动端像素适配方案
WebAPI接口设计:SwaggerUI文档 / 统一响应格式 / 统一异常处理 / 统一权限验证
Code generator plug-in and creator preform file analysis
Count the number of project code lines
小程序商城系统插件代码该如何写?怎么用代码检查添加插件是否成功?
20 XR projects roadshows, nearly 20 capital institutions attended! We sincerely invite you to attend the 2020 qcomm XR eco Partner Conference
Plug in bilibilibili new version 0.5.5
随机推荐
Win7 AppCrash (solution)
非易失性MRAM存储器应用于各级高速缓存
Call analysis of start method in JNI thread and callback analysis of run method
20个XR项目路演,近20个资本机构出席!诚邀您参加2020 Qualcomm XR生态合作伙伴大会
C calls SendMessage to refresh the taskbar icon (the icon does not disappear at the end of forcing)
消防器材RFID固定资产管理系统
Road to simple HTML + JS to achieve the most simple game Tetris
The role of theme music in games
Nanjing logo design and production, guide VI system design
磁存储芯片STT-MRAM的特点
STM32F030F4P6兼容灵动微MM32F031F4P6
1万辆!理想汽车召回全部缺陷车:已发生事故97起,亏损将扩大
[forward] how to view UserData in Lua
Epu360: all the H5 templates you want are here, e-book, big turntable, red envelope rain, questionnaire survey
QT audio and video development 46 video transmission UDP version
Windows 10 Bluetooth management page 'add Bluetooth or other devices' option click no response solution
STM32F030K6T6兼容替换灵动MM32F031K6T6
轻量型 GPU 应用首选 京东智联云推出 NVIDIA vGPU 实例
Exclusive interview with Alibaba cloud database for 2020 PostgreSQL Asia Conference: Zeng Wenjing
The native API of the future trend of the front end: web components