首页 > 其他分享 >jenkins配置脚本

jenkins配置脚本

时间:2024-08-18 11:54:05浏览次数:9  
标签:脚本 yudao 配置 jar echo sh jenkins Docker server

pipeline {
    agent any
    tools {
        maven 'Maven 3.9.2'
    }
    stages {
        stage('拉取代码') {
            steps {
                git branch: 'main', credentialsId: 'chatx', url: 'git路径'
                echo '拉取成功'
            }
        }
        
        stage('执行构建') {
            steps {
                echo '开始构建...'
                sh "mvn --version"
                sh "cd /var/lib/jenkins/workspace/chatx-test/项目路径"  
                sh "mvn package -Dmaven.test.skip=true"
                echo '构建完成'
            }
        }

        stage('备份并替换 jar 包') {
            steps {
                script {
                    def jarFile = 'jar包路径'
                    def targetPath = '/work/projects/yudao-server/镜像路径'
                    def targetPathBf = '/work/projects/yudao-server/备份路径/'
                    def timestamp = sh(script: 'date +%F_%T', returnStdout: true).trim()
                    def backupPath = "${targetPathBf}${timestamp}/"
                    
                    echo "备份路径: ${backupPath}"
                    
                    // 创建备份目录
                    sh """
                        set -e
                        mkdir -p ${backupPath}
                    """
                    
                    // 备份现有的 jar 包(如果存在)
                    sh """
                        if [ -f ${targetPath}yudao-server.jar ]; then
                            cp ${targetPath}yudao-server.jar ${backupPath}/
                            echo '现有的 jar 包已备份到 ${backupPath}'
                        else
                            echo '没有找到现有的 jar 包,跳过备份'
                        fi
                    """
                    
                    // 替换 jar 包为新的构建产物
                    sh """
                        cp ${jarFile} ${targetPath}/
                        echo '新的 jar 包已替换到目标路径'
                    """
                }
            }
        }
  
       stage('构建 Docker 镜像并运行') {
    steps {
        script {
            def imageName = 'yudao-server-image'
            def containerName = 'yudao-server-container'
            
            // 构建 Docker 镜像
            echo '正在构建 Docker 镜像...'
            sh """
                docker build -t ${imageName} -f /var/lib/jenkins/workspace/chatx-test/yudao-server/Dockerfile /var/lib/jenkins/workspace/chatx-test/yudao-server/
            """
            
            // 停止并删除现有 Docker 容器(如果存在)
            echo '正在停止并删除现有的 Docker 容器...'
            sh """
                docker rm -f ${containerName} || true
            """
            
            // 运行新的 Docker 容器
            echo '正在运行新的 Docker 容器...'
            sh """
                docker run --name ${containerName} -d -p 8080:8080 ${imageName}
            """
        }
    }
}




    }
}

 

标签:脚本,yudao,配置,jar,echo,sh,jenkins,Docker,server
From: https://www.cnblogs.com/aknife/p/18365445

相关文章

  • jenkins pipline脚本 获取git分支
    必须先禁用脚本安全性,参考文章:https://www.cnblogs.com/xiao987334176/p/18365397 点击ManageJenkins-->ScriptConsole输入以下脚本://定义Git命令defcmd="gitls-remote--headshttps://oauth2:[email protected]/xx.git"//执行命令并获取输出defproc=c......
  • jenkins workpase优化清理
    概述由于jenkinspipline脚本是通用的,可以发布上百个java项目,但是这些微服务执行job时,共用了一个Workspaces路径。 就会产生一个问题,当执行微服务a时,正好在执行mvn命令,编译jar包。这个时候,同时执行微服务b时,就会覆盖当前Workspaces的文件。那么微服务a编译jar包,就会失败。为......
  • jenkins 发布镜像清理
    概述我们在使用jenkins执行build命令时,偶尔会产生一些版本为none的镜像,但是这些镜像是完全没有用的,占用了磁盘空间,需要定期清理。 脚本清理编辑脚本clean_docker_image.sh#!/bin/bash#docker删除none镜像dockerrmi$(dockerimages-f"dangling=true"-q) 增加定......
  • shell_获取当前最新的sh脚本并执行 shell脚本 配合curl使用
    获取最新的shell脚本并执行#!/bin/bash#获取当前目录current_dir=$(pwd)#获取当前脚本的绝对路径script_path=$(readlink-f"$0")#使用find查找以temp开头且以.sh结尾的文件,并按修改时间排序latest_file=$(find"$current_dir"-maxdepth1-name"*.sh"-print0|......
  • ubuntu 安装jenkins
    下载deb包https://mirrors.aliyun.com/jenkins/debian/jenkins_2.462_all.deb注意,最新版本的jenkins支持的java版本有[11,17,21],执行/usr/bin/jenkins会有相应的提示。 说明:本文使用的操作系统为:Ubuntu24.04LTS 安装javahttps://download.oracle.com/java/21/latest/......
  • huggingface_hub cli 使用以及国内加速配置
    主要是一个简单记录,方便后续使用安装pipinstall-Uhuggingface_hub使用下载模型huggingface-clidownload--resume-downloadgpt2--local-dirgpt2下载数据huggingface-clidownload--repo-typedataset--resume-d......
  • 【Spring Boot】yaml配置注入
    配置文件SpringBoot使用一个全局的配置文件,配置文件名称是固定的applicationapplication.properties语法结构:key=valueapplication.yaml语法结构:key:空格valueapplication.yml语法结构:key:空格value(开发常用)我们可以在配置文件中修改Tomcat默认启......
  • nginx配置下载服务器(具备权限验证)
    大多数场景中,下载可以使用nginx直接代理,但缺少权限验证,下述方式下载通过后端校验,成功后转发请求nginx进行下载操作。前端代码:window.location.href="http://192.168.80.128:8080/download_file?fileName=8042200341080001_01.zip";直接打开访问指定的下载文件路径(我是用请......
  • XSS-跨站脚本攻击
    目录XSS简介XSS分类反射型XSS(非持久型XSS)存储型XSS(持久型XSS)DOM型XSSHTML文档解析过程例题HTML解析字符实体(characterentities)HTML字符实体(HTMLcharacterentities)字符引用(characterreferences)URL解析JavaScript解析解析流XSS练习DomClobberingDOM型......
  • yum源仓库更换脚本
    一、需求:一键式脚本更换国内的阿里源二、脚本#!/bin/bash#数据迁移备份yum_bak='mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup'#查看当前仓库yum_repo="yumrepolist|grep'*'|awk-F"[:.]"'NR==1{print$3}'......