流水线中使用
#!groovy
import org.devops.build
import org.devops.utils
def call(Map map) {
def utils = new utils()
def builder = new build()
pipeline {
agent any
parameters {
choice(name: '是否为紧急变更:', choices: ['否', '是'])
choice(name: '紧急变更原因为:', choices: ['无', '上次版本失败', '正常紧急发版'])
}
environment {
credentialsId = "gitlab_admin_token"
nexusRawUsernamePassword = credentials('nexus3')
// artifact_directory = map.get('artifact_directory', "default")
//maven
POM_PATH = "${map.POM_PATH}"
MAVEN_GOALS = "${map.MAVEN_GOALS}"
ES_IP = "20.1.32.74:24100"
pipeline_type = 'CI'
runenv = 'pro'
}
options {
timestamps() //日志会有时间
// skipDefaultCheckout() //删除隐式checkout scm语句
disableConcurrentBuilds() //禁止并行
timeout(time: 1, unit: 'HOURS') //流水线超时设置1h
}
stages {
stage('拉取代码') {
steps {
script {
utils.GetCodeBytag("${git_url}", "${credentialsId}")
}
}
}
stage('编译构建') {
steps {
script {
builder.mavenBuild("${POM_PATH}", "${MAVEN_GOALS}")
}
}
}
stage('检索并提交制品库') {
steps {
script {
def artifact_location = sh(returnStdout: true, script: '''
art_location=`find $WORKSPACE/target/ -maxdepth 2 -regextype 'posix-egrep' -regex ".*.(jar|war)"|grep -v "original"`
echo ${art_location}
''').trim()
env["artifact_location"] = artifact_location
def artifact_name = sh(returnStdout: true, script: '''
art_full_name=$(basename ${artifact_location})
art_name=${art_full_name:0:-4}
art_type=${art_full_name:0-4:4}
new_art_name=$art_name-${BUILD_ID}${art_type}
echo $new_art_name
''').trim()
env["artifact_name"] = artifact_name
sh '''curl -s -i --user "${nexusRawUsernamePassword}" -X POST "http://xxxxx/service/rest/v1/components?repository=data" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "raw.directory=${artifact_directory}" \
-F "raw.asset1=@${artifact_location}" \
-F "raw.asset1.filename=${artifact_name}"'''
}
}
}
}
post {
always {
wrap([$class: 'BuildUser']) {
script {
currentBuild.description = manager.getEnvVariable("git_tag")
utils.NewPostoEs()
}
}
}
}
}
}
Thank you for great article. Hello Administ .
Thank you for great content. Hello Administ.
Hello There. I discovered your weblog the usage of msn. That is an extremely well written article.
I’ll be sure to bookmark it and come back to learn more of your helpful information. Thanks
for the post. I will certainly return.