仅记录
选择参数化构建,有很多参数,选择选项参数,名称自己取,最好都是大写,选项中是给定的值,相当于key——value,具体要定义几个自己根据需要
BRANCH 最后这个分支参数我这给的是文本参数,也就是可以自己输入,其实可以用git参数,它会自动获取整个项目的所有分支,然后自行选择,但是用git参数这里就要填写项目地址,和我想用这一个流水线构建多个项目有冲突,所以用文本参数
下面就是对应的脚本pipeline scripts
def env_update(env_name) {
sh 'cp Scripts/' + env_name +' init.sh'
sh 'chmod +x init.sh'
sh './init.sh'
}
def service_restart() {
sh "docker-compose -f Scripts/docker-compose.yml stop"
sh "docker-compose -f Scripts/docker-compose.yml up -d"
}
def supervisor_restart(repo_name) {
//sh 'docker exec -it ' + repo_name + ' /bin/bash'
sh '''
rm -rf /biz-code/"${REPO_NAME}"/Config/dev /biz-code/"${REPO_NAME}"/Config/check
docker exec -i "${REPO_NAME}" /bin/bash <<EOF
cd /biz-code/"${REPO_NAME}"/
composer update
supervisorctl
update
restart all
EOF
'''
}
pipeline {
agent none
// environment{
// def ENV_DEV = "init.sh.release"
// def ENV_STOCK_COMPARE = "init.sh.stock.compare"
// }
stages {
stage('生产服务器') {
agent {
label "${LABEL}"
}
steps {
script{
//checkout scm
dir("/biz-code/${REPO_NAME}"){
checkout([$class: 'GitSCM', branches: [[name: '${BRANCH}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs:[[credentialsId: 'zhubaoe-pwd', url: '${Project_addr}']]])
env_update('${ENV_DEV}')
try{
supervisor_restart('${REPO_NAME}')
}catch (err) {
service_restart()
}
}
}
}
}
stage('over for finish'){
steps {
echo 'over'
}
}
}
}
最后保存之后
jenkins时区设置(临时)
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')