创建jenkins Pipeline流水线

admin 2023年2月15日09:21:16评论82 views字数 2658阅读8分51秒阅读模式

创建jenkins Pipeline流水线



Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy

Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法

Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM)中直接载入 Jenkinsfile Pipeline 这种方法)。













安装Pipeline插件



















在“插件管理”中的选择“可选插件”输入“Pipeline”,点击安装。

创建jenkins Pipeline流水线

————————————————

安装插件后,创建项目多了“流水线”类型

创建jenkins Pipeline流水线


















Pipeline快速开始















01
Declarative声明式-Pipeline

创建项目

创建jenkins Pipeline流水线

流水线->选择HelloWorld模板

生成内容如下:

pipeline {    agent any
   stages {        stage('Hello') {            steps {                echo 'Hello World'            }        }    }}

**stages:**代表整个流水线的所有执行阶段,通常stages只有1个,里面包含多个stage。

**stage:**代表流水线中的某个阶段,可能出现n个,一般分为拉取代码,编译构建,部署等阶段。

**steps:**代表一个阶段内需要执行的逻辑,steps里面是shell脚本,git拉取代码,ssh远程发布等人以内容。

编写一个简单声明式Pipeline:

pipeline {    agent any
   stages {        stage('拉取代码') {            steps {                echo '拉取代码'            }        }        stage('编译构建') {            steps {                echo '编译构建'            }        }        stage('项目部署') {            steps {                echo '项目部署'            }        }    }}

点击“保存”,“应用”,点击构建,可以看到整个构建过程

创建jenkins Pipeline流水线


02

Scripted Pipeline脚本式-Pipeline


创建项目

创建jenkins Pipeline流水线

选择“Scripted Pipeline ”

创建jenkins Pipeline流水线

node {    def mvnHome    stage('Preparation') { // for display purposes
   }    stage('Build') {
   }    stage('Results') {
   }}

**Node:**节点,一个Node就是一个jenkins节点,Master或者Agent,是执行step的具体运行环境,后续讲到jenkins的Master-Slave架构的时候用到。

**stage:**阶段,一个Pipeline可以换份为若干个stage,每个stage代表一组操作,比如:Build,Test,Deploy,Stage是一个逻辑分组的概念。

**Step:**步骤,Step是最基本的操作单元,可以是打印一句话,也可以是构建一个Docker镜像,由各类jenkins插件提供,比如命令:sh ’make‘,就相当于我们平时shell终端中执行make命令一样。

编写一个简单的脚本式Pipeline

node {    def mvnHome    stage('拉取代码') { // for display purposes       echo '拉取代码'    }    stage('编译构建') {       echo '编译构建'    }    stage('项目部署') {       echo '项目部署'    }}

点击保存应用,点击立即构建。

创建jenkins Pipeline流水线


03
使用流水线代码生成器

使用Declarative声明式-Pipeline演示

点击流水线语法

创建jenkins Pipeline流水线

点击片段生成器

创建jenkins Pipeline流水线

输入仓库URL,和凭证,选择指定分支后,点击生成流水线语法

创建jenkins Pipeline流水线

将生成的流水线脚本放到拉取代码中

创建jenkins Pipeline流水线

选择片段生成器,选择sh:shell Script脚本,输入“mvn clean package”构建命令,点击生成流水线脚本。

创建jenkins Pipeline流水线

将生成的编译脚本放到编译构建步骤中

创建jenkins Pipeline流水线

再根据此步骤,生成一个运行jar包的脚本

创建jenkins Pipeline流水线

pipeline {    agent any
   stages {        stage('拉取代码') {            steps {                echo '拉取代码'                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '9cc8889a-154c-4f46-8547-456070c985ad', url: 'http://101.35.161.133:8010/dev-group/web_demo.git']]])            }        }        stage('编译构建') {            steps {                echo '编译构建'                sh 'mvn clean package'            }        }        stage('项目部署') {            steps {
               echo '项目部署'
               sh 'JENKINS_NODE_COOKIE=dontKillMe nohup java -jar ./target/*.jar --server.port=8080 -> d.log 2>&1 &'                echo '部署成功'            }        }    }}

**注意:**有时需要将某个命令放到后台执行,然后并行或者异步执行其他命令,但在jenkins上很容易遇到无法真正将命令放到后台运行的问题,原因是Pipeline在推出node的时候,会默认清理自己发出的每个shell命令,即使使用了nohub,可以在命令执行的时候加上“JENKINS_NODE_COOKIE=dontKillMe”将不会清除命令。

点击“保存应用”,点击立即构建。

创建jenkins Pipeline流水线

去服务器查看进程是否存在。

创建jenkins Pipeline流水线

可以看到进程存在。


文章作者:chensi2113

原文链接:https://blog.csdn.net/chaochao2113/article/details/122843413

创建jenkins Pipeline流水线

阅读完记得关注公众号,回复“加群”和更多技术人员交流。

原文始发于微信公众号(OSC DevOps):创建jenkins Pipeline流水线

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月15日09:21:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   创建jenkins Pipeline流水线https://cn-sec.com/archives/1545103.html

发表评论

匿名网友 填写信息