|
pipeline{ //参数
parameters{
string(name:'Agent_47',defaultValue:'TEST_2',description:'目标节点服务器')
string(name:'Node_GitUrl',defaultValue:'/home/Node_Git',description:'目标节点服务器的工作空间路径')
string(name:'Pro_URL',defaultValue:'/home/pro',description:'目标节点服务器的项目部署环境路径')
string(name:'Cred_ID',defaultValue:'3619798a-5cf2-4f0b-b9b1-4320faf7c4f7',description:'节点服务器和git服务器之间的凭证')
string(name:'GitHub_Addr',defaultValue:'ssh://XXXX@git.wowocai.com:29418/SQA/Automation/XXX/CRM',description:'git仓库地址')
string(name:'MAS',defaultValue:'master',description:'git仓库分支标识')
string(name:'Pro_Name',defaultValue:'XXX_crm',description:'项目ID')
string(name:'Tomcat_Start',defaultValue:'/usr/data/XXX_crm/bin/startup.sh',description:'项目的tomcat启动文件')
string(name:'Build_Result',defaultValue:'构建失败,\n构建成功',description:'构建结果')
string(name:'Email_Reception',defaultValue:'XXXXX@qq.com',description:'邮件接收人')
}
//执行者||工作区间,执行路径:Node_GitUrl
agent{
node{
label params.Agent_47
customWorkspace params.Node_GitUrl
}
}
//options{
//整个项目的执行时间是0.1小时
// timeout(time:0.1,unit:'HOURS')
//项目执行失败,重试3次,3次后再失败则宣告失败
// retry(3)
// }
//为每个阶段(stage)建设自己的执行者或者工作区间|节点
stages{
stage('参数初始化'){
steps{
script{
def BUILD=params.Build_Result.split(",")
build_faild = BUILD[0]
build_success = BUILD[1]
}
}
}
stage('清除工作空间'){
//steps最小执行单元,cleanWs():清除工作空间
steps{
cleanWs()
}
}
stage('代码获取'){
steps{
git credentialsId:params.Cred_ID,
url:params.GitHub_Addr,
branch:params.MAS
}
}
stage('清楚FSDK项目的CRM所有文件'){
steps{
sh "rm -rf ${params.Pro_URL}/${params.Pro_Name}*"
}
}
stage('推送最近拉取的FSDK项目的CRM所有文件'){
steps{
sh "mv ${params.Pro_Name} ${params.Pro_URL}"
}
}
stage("环境部署"){
steps{
//判断fsdk_crm的进程是否存在,如果不存在则重新启动,如果存在则kill掉该进程,然后重新启动
sh '''count=`ps -ef |grep fsdk_crm|grep -v "grep" |cut -c 9-15`
if [ $? -eq 0 ]
then
/usr/data/fsdk_crm/bin/startup.sh
sleep 30
else
`kill -9 $count`
/usr/data/fsdk_crm/bin/startup.sh
sleep 30
fi'''
// sh "ps -ef|grep fsdk_crm|grep -v grep|cut -c 9-15|xargs kill -9"
}
}
}
post{
failure{
echo "构建失败"
emailext body: '''**************************************<br>
XXX测试环境 ${build_faild}
<br>
**************************************<br>''',
subject: 'Test',
to:params.Email_Reception
}
success{
echo "构建成功"
emailext body: '''**************************************<br>
${build_success}
XXX测试环境已提测部署<br>
**************************************<br>''',
subject: 'Test',
to:params.Email_Reception
}
}
}
|
|