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"))
}

}
相关推荐
无奈笑天下4 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
威嵌神州8 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
Decay__9 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo9 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
打工仔折腾 AI14 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
无奈笑天下14 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
fengkai454515 小时前
Prometheus+K8s弹性伸缩综合项目
运维·kubernetes·k8s·prometheus·hpa·vpa
分布式存储与RustFS17 小时前
镜像仓库的层别只堆本地盘:用 RustFS 给 Harbor 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
雪落漂泊19 小时前
Liunux进程(七):程序控制篇(中)
linux·运维·windows
分布式存储与RustFS19 小时前
工作流脚本和依赖 JAR 散在各节点本地盘:用 DolphinScheduler 资源中心接到 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准