You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

109 lines
4.6 KiB

pipeline {
agent any
// environment {
// def imageName = "cloud/${project_names_and_port}"
// def tag="latest"
// }
tools {
maven "maven-3.6.3"
}
stages {
stage('check out') {
steps {
script{
def gitea_url
if("${gitea_server}" == "136Git")
{
gitea_url = "$local136_gitea_url"
}
if("${gitea_server}" == "aliyunGitea")
{
gitea_url = "$aliyun_gitea_url"
}
echo "================${gitea_url}"
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${gitea_server}", url: gitea_url]]])
}
}
}
stage('building dependency') {
steps {
sh '''
mvn -f renren-commons clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true
'''
}
}
stage('test get param') {
steps {
script {
echo "registry_url=${registry_url}"
// project_names_and_port=renren-register@8761
// select_ssh_name=aliyun@server1,195@server1,195@server2,195@server3
def selectedProject = "${project_names_and_port}".split(',')
def selectedDeployServer = "${select_ssh_name}".split(',')
for(int i=0; i<selectedProject.size();i++)
{
def module_name = selectedProject[i].split('@')[0]
def register_port = selectedProject[i].split('@')[1]
sh "$shell_path/delete_image.sh $group_id/$module_name $latest_tag > /opt/jenkins_shell/delete_image.log 2>&1"
sh "mvn -f $module_name clean install dockerfile:build -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true"
sh "$shell_path/upload_image.sh $group_id/$module_name $latest_tag $registry_url > /opt/jenkins_shell/upload_image.log 2>&1"
echo "######### module_name=${module_name},register_port=${register_port}"
for(int j=0; j<selectedDeployServer.size();j++)
{
def deployServerName = selectedDeployServer[j].split('@')[0]
def deployServiceConfig = selectedDeployServer[j].split('@')[1]
echo "deployServerName=${deployServerName}"
echo "deployServiceConfig=${deployServiceConfig}"
// 获取eureka profile
//fastwave_dev_master,fastwave_dev_slave1,fastwave_dev_slave2
def profile = "--spring.profiles.active=" + deployServiceConfig
// def latest_tag = deployServiceConfig
//注册中心地址
def eureka_url
if(deployServiceConfig == "server1"){
register_port = "8761"
if(deployServerName == "195"){
eureka_url = "192.168.1.195:" + register_port
}else{
eureka_url = "47.93.219.55:" + register_port
}
}else if(deployServiceConfig == "server2"){
register_port = "8762"
eureka_url = "192.168.1.195:" + register_port
}else if(deployServiceConfig == "server3"){
register_port = "8763"
eureka_url = "192.168.1.195:" + register_port
}
// $group_id/$module_name:cloud/renren-register
// register_port:8761
// register_port:8761
// latest_tag:latest
// registry_url:47.93.219.55:5001
// eureka_url:192.168.1.195:8761(8762,8763)或47.93.219.55:8761
// deployServiceConfig:cloud/renren-register
// profile:cloud/renren-register
sshPublisher(publishers: [sshPublisherDesc(configName: "$deployServerName", transfers: [sshTransfer(cleanRemote: false, excludes: '',
execCommand: "/data/jenkins_shell/deploy_image_eureka.sh $group_id/$module_name $register_port $registry_url $eureka_url $deployServiceConfig $profile > /data/jenkins_shell/deploy_image_eureka.log 2>&1", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}
}
}
}