- 新建构建任务,初步定命名规范:组名缩写-环境-仓库名(or 组名缩写-环境-仓库名-描述)
- 构建任务配置,启用用户安全添加用户并授权,非LDAP需要先注册用户
- 参数化构建
run_env不同环境对应值,其它值无效,其对应数据库字段,不同环境对应相应服务器
dev test alpha beta prod
- 如果需要进行自动化提交构建则进行此步骤,配置webhook自动化构建,到gitlab的对应仓库设置hook对应的url,secret,需要自动化测试的分支,保存并测试
- 添加pipeline流水线脚本
pipeline{
//运行节点设置
agent {label 'master'}
options {
timestamps()
skipDefaultCheckout()
}
stages {
stage('prepare') {
steps {
echo '初始化相关变量...'
script {
//branch_or_tag为参数化构建参数,git会拉取分支或者标签,run_env为参数化构建的发布环境,mode为参数化构建的子目录
//********** 只需要配置仓库目录名和仓库地址,仓库名和仓库地址需要在仓库字典存在对应一条记录 start ***********
main_dir = 'ToolReviewCode'
main_git = 'git@XXXXXXXXXXXXX/ToolReviewCode.git'
//********** end *****************
//以下不需要配置
//主仓库绝对路径
repo_path = "${WORKSPACE}"
//临时仓库项目目录
temp_project_path = "${BUILD_SPACE}/${currentBuild.projectName}"
//主仓库临时目录
temp_repo_path = "$temp_project_path/${main_dir}"
//创建临时目录
sh "mkdir -p ${temp_project_path}"
}
}
}
stage('checkout') {
steps{
//这里需要配置
//主仓库拉取,只需要配置分支或标签${branchOrTag},git_url
echo '开始拉取代码...'
checkout([$class: 'GitSCM', branches: [[name: "${branch_or_tag}"]], userRemoteConfigs: [[url: "${main_git}"]]])
}
}
stage('build') {
steps {
//发布前构建
//先同步到临时目录,rsync 命令,-a -z为压缩,-t为保留文件时间属性,如果是量全量同步则是加 --delete-after,排除.git文件,可根据自己需要我改参数,后面两个目录参数可不动,注意第一个要加'/',第二个不用
sh "rsync -azt --exclude=.git ${repo_path}/ ${temp_repo_path}"
//写入主