jenkins 流水线脚本

#后台微服务项目是用流水线类型构建,脚本如下

复制代码
node {
//定义变量
def mvn="/var/jenkins_home/updates/apache-maven-3.6.3/bin/mvn"
def full_project_name = "sass-${project_name}"

def shellSh = "./deploy_sass.sh ${mode} ${project_name}"    
//第一阶段,拉取代码
stage('Pull code') { // for display purposes
    // Get some code from a GitHub repository
    //这里语法可以借助jenkins生成,不过我们要先添加好对应的凭证
    git credentialsId: 'code', url: 'https://e.coding.net/heyinkj/sass/sass-entire.git'
}    //第二阶段,构建代码,将代码打包成对应的jar
stage('Build code'){
    sh "${mvn} clean install -pl sass-common -am"
    sh "${mvn} -f ${full_project_name} clean package"
}
//第三阶段,部署代码,将jar部署起来
stage('Deploy code'){
    sh "ssh root@120.78.237.91 \"cd /mydata/sh/;${shellSh}\""
} 
}

#前端项目是用自由风格软件项目类型构建,脚本如下:

构建环境勾选 "Provide Node & npm bin/ folder to PATH"

选择node13.7 (这个node插件需要在插件管理安装node插件,然后在全局工具配置选择自动安装node)

增加构建步骤,选择"执行shell"

复制代码
npm install
npm run build:stage
ssh root@120.78.237.91 "cd /mydata/sh/;./deploy_admin.sh"

#前端项目升级为pipeline流水线来部署

复制代码
node {
//第一阶段,拉取代码
stage('Pull code') { // for display purposes
   if (env.environment == 'develop') {
        git branch: "develop",credentialsId: 'code', url: 'https://e.coding.net/heyinkj/sass/sass-admin-front.git'
    } else {
        git branch: "release",credentialsId: 'code', url: 'https://e.coding.net/heyinkj/sass/sass-admin-front.git'
    }
}    //第二阶段,构建代码,将代码打包成对应的jar
stage('Build code'){
    //使用nodejs环境
    nodejs("node13.7"){
        sh 'npm install'
        sh 'npm run build:stage'
    }
}

stage('Deploy code'){
    if (env.environment == 'develop') {
        sh "ssh root@120.78.237.91 \"cd /mydata/sh/;./deploy_admin.sh dev\""
    } else {
        sh "ssh root@120.78.237.91 \"cd /mydata/sh/;./deploy_admin.sh prd\""
    }
    manager.addShortText(manager.getEnvVariable("environment"))
}

}
相关推荐
DianSan_ERP7 小时前
电商架构演进:如何在高并发场景下实现多平台API的标准化履约?
运维·前端·网络·安全·架构·自动化
恒5397 小时前
Linux文件系统I
linux·运维·服务器
阿成学长_Cain7 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
运维老郭10 小时前
【K8s运维实战】Kubernetes临时存储卷实战:emptyDir核心用法与gitRepo弃用迁移指南
运维·云原生·kubernetes
珠海西格电力10 小时前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
阿成学长_Cain10 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
小羊Yveesss11 小时前
2026年微信小程序后端怎么搭建?后台、数据、接口和运维怎么选
运维·微信小程序·小程序
想你依然心痛13 小时前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全
AAA@峥14 小时前
容器数据不丢失:Docker 分层存储 + Volume 共享、备份迁移完整指南
运维·docker·容器
MDM.Plus14 小时前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店