《笔记》Jenkinsfile 与 自动化部署shell脚本

8 篇文章 0 订阅
4 篇文章 0 订阅

Jenkinsfile脚本

//项目名,你的项目名称
def project_name = ''
//项目版本,常用版本
def tag = '1.0-SNAPSHOT'
//Gitee ID,你的Gitee(码云)秘钥凭证
def id = ''
//Gitee 项目地址
def git_url = ''
//远程部署路径,你的项目部署到远程服务器的地址
def project_file="/usr/local/webService/"
//sh 脚本,你的自动化部署脚本
def sh_name="project.sh"
//sh 远程服务器,你的远程服务器名称
def service=""

pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${id}", url: "${git_url}"]]])
            }
        }
        stage('清理并且打包项目') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('远程部署服务') {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: "${service}", transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "sh ${project_file}/${sh_name}  ${project_name}-${tag} ${project_file} ${project_name} ${sh_name}", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'target/*.jar,project.sh')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
            }
        }
    }
}

project.sh 脚本

#!/bin/bash
#阻止jenkins自动结束启动程序
JENKINS_NODE_COOKIE=dontKillMe
#$1 项目名+版本 $2 项目部署路径 $3项目名 $4sh脚本
#部署远程服务器重新刷新环境
echo "刷新环境"
source /etc/profile
target="target"
echo "切换目录"
cd  $2
echo "创建项目目录 $3"
mkdir $3

echo "复制项目 $2/$target/$1.jar"
cp $target/$1.jar $3/

echo "复制sh脚本 $4"
cp $4 $3/

echo "显示 $1 路径"
echo "切换项目目录 $3"
cd $3
echo "删除旧文件"
rm -rf ../$target
rm -rf ../$4

echo "查询项目是否启动"
isStart=$(ps -ef | grep $1.jar | awk 'NR==1 {print $3 }')
echo "检查程序是在否启动"
if [ $isStart == 1 ]
then
echo "停止项目 $1"
startId=$(ps -ef | grep $1.jar | awk 'NR==1 {print $2 }')
echo "$1 项目启动的ID是:$startId, 结束进程"
kill -9 $startId
fi

echo "启动项目 $1"
nohup java -jar  $1.jar>$1.log 2>&1 &
echo "$1 启动成功 "

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值