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.
 
 
 
 
 
 

87 lines
4.0 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
mvn -f renren-module/stock/stock-client clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true
mvn -f renren-admin/renren-admin-client clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true
'''
}
}
stage('build images and deploy') {
steps {
script {
//if(false){
echo "registry_url=${registry_url}"
def selectedProjectNamesAndPort = "${project_names_and_port}".split(',')
def selectedSshNames = "${select_ssh_name}".split(',')
for(int i=0; i<selectedProjectNamesAndPort.size();i++)
{
//renren-gateway@8080,renren-auth@8081,renren-admin/renren-admin-server@8082,renren-module/stock/stock-server@8085
def projectNameWithGroup = selectedProjectNamesAndPort[i].split('@')[0]
def module_name = projectNameWithGroup
def service_name_array
if(projectNameWithGroup == "renren-admin/renren-admin-server"){
module_name=projectNameWithGroup.split('/')[1]
}else if(projectNameWithGroup == "renren-module/stock/stock-server"){
module_name=projectNameWithGroup.split('/')[2]
}
def register_port = selectedProjectNamesAndPort[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 $projectNameWithGroup 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<selectedSshNames.size();j++)
{
def selectedSshName = selectedSshNames[j]
echo "selectedSshName=${selectedSshName}"
sshPublisher(publishers: [sshPublisherDesc(configName: "$selectedSshName", transfers: [sshTransfer(cleanRemote: false, excludes: '',
execCommand: "/data/jenkins_shell/deploy_image.sh $group_id $module_name $register_port $registry_url $eureka_url > /data/jenkins_shell/deploy_image.log 2>&1", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
// }
}
}
}
}
}
}