首页 > 系统相关 >jenkins集成自定义shell脚本

jenkins集成自定义shell脚本

时间:2024-12-25 22:41:12浏览次数:4  
标签:npm pipeline GIT 自定义 sh shell BRANCH jenkins

在jenkins工作空间中动态生成shell脚本

           

shell语法

cat > h5build.sh <<EOF
 current=\`date "+%Y-%m-%d %H:%M:%S"\`
 timeStamp=\`date -d "\$current" +%s\`   
 currentTimeStamp=\$((timeStamp*1000+\`date "+%N"\`/1000000))
 echo \`cat version.json | grep -o  _v.*_ | sed 's/_//g'\`  \$currentTimeStamp > version2.json
EOF
View Code

          

pipeline语法

        pipeline和shell语法有所不同

pipeline {
    agent any
    
    environment {
        //这里修改代码的分支名称
        GIT_BRANCH = 'test'
    }
    
    stages {
        
         stage('GetCode'){
          steps {
             git branch: "${env.GIT_BRANCH}", url: 'https://192.168.30.111:8090/soc/yun_soc_h5.git'
            }

          post {
             success {
               print("getCode success")
             }
         }
      }
        
        stage('build') {
            steps {
                script {
                    echo "当前构建的Git分支名称是: ${env.GIT_BRANCH}"
                    sh "npm config set unsafe-perm=true"
                    sh "npm install"
                    sh "npm install node-sass  --unsafe-perm --save  --registry=https://registry.npm.taobao.org"
                    sh "npm install image-webpack-loader"
                    sh "cnpm install image-webpack-loader"
                    sh "npm run build:prod"
                    sh "echo ${env.GIT_BRANCH} > ./version.json"
                }
            }
        }
        
        stage('Deploy') {
             steps {
             script {
            sh '''
              cat > h5deploy.sh <<EOF 
current=\\`date "+%Y-%m-%d %H:%M:%S"\\` 
timeStamp=\\`date -d "\\$current" +%s\\`  
currentTimeStamp=\\$((timeStamp*1000+\\`date "+%N"\\`/1000000)) 
echo \\`cat version.json | grep -o  _v.*_ | sed 's/_//g'\\`  \\$currentTimeStamp > dist/version.json 
EOF
'''
             sh "chmod +x h5deploy.sh  && sh h5deploy.sh"
             
             sh "ssh admin@192.168.30.92 'rm -fr /data/soc/nginx/html/*'"
             sh "scp -r ./dist/* admin@192.168.30.92:/data/soc/nginx/html"
        }
             }
        }
    }
}
pipeline生成shell文件

      

     流水线构建结果

       

          

         

       打包成功

标签:npm,pipeline,GIT,自定义,sh,shell,BRANCH,jenkins
From: https://www.cnblogs.com/yxh168/p/18631516

相关文章

  • 【安全工具】蚁剑二开:添加自定义编码/解码器
    以下文章来源于Spadesec,作者0xsdeo前言我大概已经写了两三个月关于JS逆向的文章,正好前两天抽空研究了一下关于蚁剑如何添加编码/解码器,所以年底这几天就分享一些关于安全的内容,应该也是我放假前的最后两篇文章。注:本人目前没有看过任何关于蚁剑二开文章,以下内容纯是我自己摸......
  • shell语法保姆级教程
    Shell脚本建立一个sh脚本touch 1.sh (新建脚本文件)vi 1.sh(编写文件内容)按 i 可以写入内容,按esc :wq退出并保存解释1、创建脚本文件2、脚本文件中第一行为指定脚本编译器:#!/bin/bash最终调用的都是dash执行shell脚本命令:1、./1.sh难道我们必须要修改权限才能......
  • Jenkins入门使用
    Jenkins入门使用1先安装jdk才能运行jenkinsyuminstall-yjava-1.8.0-openjdk.x86_642安装jenkins,运行,进行端口绑定,启动jenkinsdockersearchjenkinsdockerpulljenkins/jenkinsdockerrun-d-uroot-p8080:8080-p50000:50000-v/var/jenkins_home:/var/jenkin......
  • openlayers 6/7 绘制自定义圆 渐变圆
    openlayers绘制自定义圆渐变圆效果图目录openlayers绘制自定义圆渐变圆效果图简介主要特点使用场景示例js部分定义中心点修改中心点为圆心点创建圆自定义圆样式绘制圆添加圆到图层线上示例简介OpenLayers是一个开源的JavaSc......
  • thinkphp 自定义命令生成验证器文件
    命令demo phpthinkhello(指令)--table表名代码如下<?phpdeclare(strict_types=1);namespaceapp\command;useDateTime;usethink\console\Command;usethink\console\Input;usethink\console\input\Option;usethink\console\Output;usethink\fa......
  • shell jq使用记录
    linuxjq处理字典内的数组字典数组catdata.json{"fruits":["apple","banana","cherry"]}#获取字典keysjq'keys'data.json["fruits"]#获取获取字典中数组keysjq'.fruits|keys'data.json......
  • adb shell的命令
    发送广播:ambroadcast-a action.xxxx        --eixxx1  广播中的参数为整型    --ezxxxtrue/false      -e extra.xxx  xxx  广播中参数为字串型  详细如下:[-a<ACTION>][-d<DATA_URI>][-t<MIME_TYPE>][-c<C......
  • SpringBoot自定义starter
    一.命名推荐以xxx-spring-boot-starter命名二.原理引入spring-boot-starter-jdbc后可直接使用DataSource1.加载自动配置类通过SPI(ServiceProviderInterface,Java提供的服务发现机制,用于框架拓展和组件替换)原理(1)@SpringBootApplication->@EnableAutoConfiguration->@Imp......
  • 如何创建自定义Retriever
    技术背景介绍老铁们,今天我们来聊聊在LLM应用中如何创建一个自定义的Retriever。很多时候,我们需要从外部数据源中检索信息,一个好的Retriever就是帮我们完成这个任务的关键。Retriever的任务是根据用户的查询来检索相应的Document,然后将这些文档格式化为提示信息,传递给LLM进......
  • 使用Excel制作通达信自定义“序列数据“
    序列数据的视频教程演示Excel制作通达信自定义序列数据1.序列数据的制作方法:删掉没有用的数据(行与列)和股代码格式处理,是和外部数据的制作方法是相同,自己上面看历史博文。只需要判断一下,股代码跟随的字符串,是前缀(字符串+股代码)还是后缀(股代码+字符串),然后对应的Excel命......