需求: 想把服务里面的各个模块的构建时间显示出来。
jenkins pipeline如下
// Using git without checkout
pipeline {
agent any
parameters {
gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'Branch', sortMode: 'DESCENDING_SMART', type: 'PT_BRANCH' ,listSize: '10'
}
stages {
stage('更新拉取最新代码') {
steps {
git branch: "${params.Branch}", url: 'git@gitlab.ihaozhuo.com:Web/view-report.git'
}
}
stage('sonar扫描') {
steps {
sh "echo ${WORKSPACE} "
sh "echo ${JOB_NAME} "
//sh "echo ${deploy_step} "
sh "echo ${env.JOB_NAME} "
script
{
switch(SONAR_SCAN)
{
case "TRUE":
sh "echo 扫描"
sh "sh /srv/deploy_scripts/do_sonar.sh ${WORKSPACE} ${JOB_NAME}"
// sh "echo \u001B[31m不扫描\u001B[0m !!!"
default:
sh "echo \u001B[31m不扫描\u001B[0m !!!"
}
}
}
}
stage('输出项目的参数') {
steps {
sh "echo ${WORKSPACE} "
sh "echo ${Branch} "
//sh "echo ${deploy_step} "
sh "echo ${env.JOB_NAME} "
script {
wrap([$class: 'BuildUser']) {
def deploylog="${BUILD_USER} use pipeline '${JOB_NAME}(${BUILD_NUMBER})' "
println deploylog
buildName "#${BUILD_NUMBER}-^${BRANCH}^-${BUILD_USER}"
HTTPD_LOCATION= sh( returnStdout: true, script: 'git show -s |grep -vE "Date" |grep -v "^$" |sed "s/^[ \\t]*//g"')
buildDescription "${HTTPD_LOCATION} ${BUILD_USER}此次部署项目: ${BUILD_ENV} "
}
}
}
}
stage('拆分子项目') {
steps {
sh "echo $model"
}
}
}
}
def doOneProject(p_name){
stage(p_name+"开始deploy") {
echo "${p_name}"
}
stage(p_name+"deploying") {
echo "$p_name nnnpm runnnn ${BUILD_ENV}build}"
//sh "echo \"$depoly_model npm run ${BUILD_ENV}build \" "
}
stage(p_name+"deploy result") {
echo "结束了${p_name}"
}
}
node {
// 获取页面选择的内容
def model="${model}"
// 第一步显示出选择的
stage('show model') {
echo model
}
stage('run all') {
for (p_name in model.tokenize(',')){
doOneProject(p_name)
}
}
}
主要代码
def doOneProject(p_name){
stage(p_name+"开始deploy") {
echo "${p_name}"
}
stage(p_name+"deploying") {
echo "$p_name nnnpm runnnn ${BUILD_ENV}build}"
//sh "echo \"$depoly_model npm run ${BUILD_ENV}build \" "
}
stage(p_name+"deploy result") {
echo "结束了${p_name}"
}
}
node {
// 获取页面选择的内容
def model="${model}"
// 第一步显示出选择的
stage('show model') {
echo model
}
stage('run all') {
for (p_name in model.tokenize(',')){
doOneProject(p_name)
}
}
执行效果如下
参考
https://www.cnblogs.com/a393060727/p/12214548.html