流水线示例:
pipeline {
agent any
options {
timestamps()
disableConcurrentBuilds()
buildDiscarder(
logRotator(
numToKeepStr: '20',
daysToKeepStr: '30',
)
)
}
parameters {
choice(
name: "DEPLOY_FLAG",
choices: ['deploy', 'rollback'],
description: "发布/回滚"
)
string(name: 'DEPLOY_VERSION', defaultValue: 'v1.0.54', description: '请输入你需要打包的版本号')
choice (choices: ['90003', '90004', '90005'],
description: '请选择发布到那台服务器上',
name: 'Devlophost')
}
/*=======================================常修改变量-start=======================================*/
environment {
svnUrl = "svn://192.168.5.45:444/Server/Tag"
branchName = "Server"
projectRunDir = "项目运行目录"
jobName = "${env.JOB_NAME}"
serviceName = "发布java项目 "
serviceType = "jar"
runHosts = "192.168.167.xx,192.168.167.xx"
rollbackVersion = ""
}
stages {
stage("upload data file") {
steps{
script {
def inputFile = input message: 'Upload file', parameters: [file(name: "$workspace/data.zip")]
}
}
}
stage("checkout") {
steps{
echo fileExists('data.zip').toString()
}
}
stage('Deploy'){
when {
expression { return params.DEPLOY_FLAG == 'deploy' }
}
stages {
stage('Pre Env') {
steps {
echo "======================================项目名称 = ${env.JOB_NAME}"
echo "======================================项目 URL = ${svnUrl}"
echo "======================================项目分支 = ${branchName}"
echo "======================================当前编译版本号 = ${env.BUILD_NUMBER}"
}
}
stage('svn update') {
steps {
echo "=============================================打包前先拉取更新svn "
dir('/data/game/server/code/Tag') {
sh 'svn update'
}
}
}
stage('Compilepackage_game_server') {
steps {
dir('/data/game/server/ztsy_ad_internal_s90004/scripts/') {
script{
try {
sh "sh sync_server.sh ${params.DEPLOY_VERSION}"
}
catch (exc) {
echo ' 33[31m 打包game_server服务器失败 33[0m'
sh "exit 1"
}
}
}
}
}
stage('Compilepackage_center_server') {
steps {
dir('/data/game/server/internal_ad_center_s90004/scripts') {
script{
try {
sh "sh sync_center_server.sh ${params.DEPLOY_VERSION}"
}
catch (exc) {
echo ' 33[31m 打包center_server服务器失败 33[0m'
sh "exit 1"
}
}
}
}
}
stage('upload data表'){
steps {
dir('/data/game/server/ztsy_ad_internal_s90004'){
sh "rm -rf data.zip data"
}
dir('/root/.jenkins/workspace/pipeline_develop_javaproject/') {
script{
try {
sh "mv data.zip /data/game/server/ztsy_ad_internal_s90004"
}
catch (exc) {
echo ' 33[31m zt_server服务器替换策划表失败 33[0m'
sh "exit 1"
}
}
}
dir('/data/game/server/ztsy_ad_internal_s90004/'){
script{
try {
sh "unzip data.zip"
}
catch (exc) {
echo ' 33[31m zt_server服务器制版失败 33[0m'
sh "exit 1"
}
}
}
}
}
stage('server Deploy') {
steps {
dir('/root'){
sh "sh pushxyios${params.Devlophost}.sh;sh push_xyios_center_${params.Devlophost}.sh"
}
}
}
}
}
stage('Rollback') {
when {
expression { return params.DEPLOY_FLAG == 'rollback' }
}
steps{
script {
rollbackVersion = input(
message: "请填写要回滚的版本",
parameters: [
string(name:'last_number')
]
)
withEnv(["rollbackVersion=${rollbackVersion}"]){
echo "开始回滚版本"
}
}
}
}
}
post {
success {
echo 'This task is successful!'
}
}
}
服务器租用托管,机房租用托管,主机租用托管,https://www.e1idc.com