jenkins流水线脚本使用


pipeline 流水线的使用

脚本示例

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                git branch: 'main', credentialsId: '221cd873-1038-474f-9f7c-92a84bb9bcb7', url: 'http://192.168.100.66:180/octopus/Testexample.git'
                echo 'Hello World'
            }
        }
        stage('编译打包') {
            steps {
                sh '''export JAVA_HOME=/root/tools/jdk1.8 
                      mvn clean install'''
                echo 'maven构建完成'
            }
        }
        stage('启动jar') {
            steps {
                
                //设置后台保活
                /**
                 *第一行设置后台保活 
                 * 第二行杀死旧的进程
                 * 第三行复制jar
                 * 第四行启动运行 jar
                 */
               sh '''
                     export JENKINS_NODE_COOKIE=asdsdfsdf
                     ps -ef|grep TestExample-0.0.1-SNAPSHOT.jar|awk '{print $2}'|xargs echo         
                     cp target/*.jar  /root/jar                                                      
                     java -jar /root/jar/*.jar &>/root/jar/nohup.out &                              
                     '''
                echo '启动 jar'
            }
        }
         
       
    }
}

语法

pipeline 定义流水线标志
stages 定义阶段
stage 定义具体的阶段
steps 定义一个阶段里面的的步骤,里面是具体的每一个步骤

我们需要关心的只是steps 里面每一个步骤应该怎么写

点击流水线语法后面有代码生成器

image-20240131013122803

生成拉取git的代码

示例步骤里面可以选很多模型,比如配置git拉取代理,发送文件到目标服务器,执行 shell 脚本,发送邮件等等

生成代码以后铁道对应的steps 里面就行

image-20240131013305511

沙盒允许的脚本不需要审核

image-20240131013502544

非沙盒脚本审核的位置

image-20240131013540889

没有勾选 Grovy 沙盒选项的代码需要 点击审核的脚本才能运行

image-20240131013628710

执行 Java -jar 文件进程退出问题

如果是pipeline风格的项目

export JENKINS_NODE_COOKIE=xxx,可以让执行脚本的时候后台保活

           sh '''export JENKINS_NODE_COOKIE=dontkillme
				 cp target/*.jar  /root/jar
                 nohup java -jar /root/jar/*jar &>nohup.out &'''
            echo 'run jar'

image-20240131192406716

如果是自由风格

export BUILD_ID=xxx,可以让后台保活

export BUILD_ID=dontkillme
ps -ef|grep TestExample-0.0.1-SNAPSHOT.jar|awk '{print $2}'|xargs echo
cp target/*.jar  /root/jar
java -jar /root/jar/*.jar &>/root/jar/nohup.out &      

image-20240131192341105

Jenkinsfile

jenkins的构建脚本可以放在jenkins里面,也可以放在git仓库。
比如在项目中通过Jenkinsfile定义构建脚本,然后jenkins去git取构建脚本,以此来构建流水线。
image-20240131145325152

posted on   zhangyukun  阅读(185)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示