首页 > 其他分享 >jenkins流水线脚本使用

jenkins流水线脚本使用

时间:2024-01-31 19:56:16浏览次数:23  
标签:脚本 git jar steps 流水线 jenkins root

目录


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

标签:脚本,git,jar,steps,流水线,jenkins,root
From: https://www.cnblogs.com/cxygg/p/17999976

相关文章

  • ChatGPT API调用python和脚本实现
    ChatGPT由于其独特、近乎准确且类似人类的响应,如今在互联网上引起了过多的讨论。本文讨论如何通过Python代码连接到ChatGPTAPI。 第1步:获取OpenAIAPI的API密钥要获取OpenAIAPI的API密钥,您需要在OpenAI网站上注册一个OpenAI帐户。拥有帐户后,您可以按......
  • 【ElasticSearch】脚本条件
    RESTAPI{"query":{"bool":{"must":[{"term":{"sqStatus":{"value":3,"boost":1}......
  • kali学习笔记-05-DVWA XSS跨站脚本攻击
    kali学习笔记-05-DVWA XSS跨站脚本攻击KaliLinux网络安防一、反射型XSS攻击在OWASP的DVWA上,选中XSSreflected页面,在输入框内输入张三,页面反应正常。尝试输入一句script脚本。<script>alert('xss')</script>出现了如下的系统弹框,也就意味着后端服务器没有对特殊字符做......
  • matlab常用脚本
    导入arxml文件%'Data.xlsx'isnecessarytoloadmodelname[~,~,rawConfig]=xlsread('Data.xlsx','Configuration');Configsize=size(rawConfig);%disp(Configsize(2));fori=1:Configsize(2) ifstrcmp(rawConfig{1,i},'Model_Name......
  • gulp : 无法将“gulp”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名
    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=gulp%20%3A%20%E6%97%A0%E6%B3%95%E5%B0%86%E2%80%9Cgulp%E2%80%9D%E9%A1%B9%E8%AF%86%E5%88%AB%E4%B8%BA%20cmdlet%E3%80%81%E5%87%BD%E6%95%B0%E3%80%81%E8%84%9A%E6%9C%AC%E6%96......
  • Linux脚本之文件内容去重脚本
    前言脚本为自用脚本,用于在Linux上完成文件内容的去重工作,但是此文件对二进制文件无效,只针对文本文件进行去重脚本内容#!/bin/bash#检查参数是否正确if[$#-ne1];thenecho"用法:$0<文件名>"exit1fi#获取指定文件的文件名filename=$1#使用sort和uniq......
  • 译:使用 Bun 执行 Shell 脚本
    原文地址(BunBlog):https://bun.sh/blog/the-bun-shell作者:jarredsumner发布时间:2024-01-20前言JavaScript是世界上最流行的脚本语言。那么为什么在JavaScript中执行Shell脚本很困难呢?import{spawnSync}from'child_process'//代码比想象中要稍微复杂一些con......
  • powershell param : 无法将“param”项识别为 cmdlet、函数、脚本文件或可运行程序的
    前言全局说明powershellparam:无法将“param”项识别为cmdlet、函数、脚本文件或可运行程序的名称。一、源码echo"脚本启动"param($age,$address="USA",$name)Write-Host"Name:$name"Write-Output"Address:$address"Write-Output"Age:$age&qu......
  • dockerfile安装jenkins 并配置构建工具(node、npm、maven、git)
    dockerfile安装jenkins并配置构建工具(node、npm、maven、git):https://blog.csdn.net/weixin_39660224/article/details/88775707?ops_request_misc=&request_id=&biz_id=102&utm_term=dockerfile%20%E5%88%9B%E5%BB%BAjenkins&utm_medium=distribute.pc_search_result.......
  • centos7安装jenkins
    war安装去jenkins官网下载war包下载最新的包,旧的包插件支持有问题,会导致装不上插件,如果是中文官网,最外面的版本一般都很老,直接去历史发型版里面下载最新的,低版本的jenkins会下载不下来合适版本的插件,jenkins的插件库里面只能获取到最高版本的插件,并且不会向下兼容低版本的j......