1.查看环境变量的参数
sh ‘printenv’
注意,自己在环境变量中增加的值,也可以在这个打印中看到
2.获取参数值
使用${env.参数}
3.git的连接使用HTTP的参数
这样在jenkins中配置了用户之后,不需要再写用户名与密码
import groovy.json.JsonSlurper;
import java.text.SimpleDateFormat;
pipeline {
agent any
environment {
DISABLE_AUTH = 'true'
DB_ENGINE = 'sqlite'
ipaddress = 'http://*.*.*.*:'
// sonar的名称初始化
keeName="${env.gitlabTargetRepoName}-${env.gitlabSourceBranch}"
}
stages {
stage('Build') {
steps {
// 查看环境变量中的参数
sh 'printenv'
}
}
stage('clean workspace') {
steps {
sh 'rm -rf ./*'
}
}
// 代码编译
stage('Pre-Compile') {
steps {
git branch: "${env.gitlabSourceBranch}", credentialsId: '***', url: "${env.gitlabSourceRepoHttpUrl}"
sh 'mvn clean package -Dmaven.test.skip=true'
}
post {
failure {
mail (
to: "${env.gitlabUserEmail}",
subject:"FAILURE Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
body:"FAILURE \n 项目名:${env.JOB_NAME}\n 构建ID: ${env.BUILD_NUMBER}\n 输出:${env.BUILD_URL}console"
)
}
}
}
// 单元测试
stage('Unit-Test'){
steps
{
script
{
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')
{
sh 'mvn install'
sh 'mvn test'
junit allowEmptyResults: true, testResults: "**/target/surefire-reports/*.xml"
}
}
}
post{
failure{
mail (
to: "${env.gitlabUserEmail}",
subject:"FAILURE: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
body: "FAILURE \n 项目名:${env.JOB_NAME}\n 构建ID: ${env.BUILD_NUMBER}\n 输出:${env.BUILD_URL}console"
)
}
}
}
// Sonar
stage('Scan-Code'){
steps{
script{
sh "mvn sonar:sonar -Dsonar.host.url=${ipaddress}9000/sonarqube -Dsonar.login=****** -Dsonar.projectName=${env.gitlabTargetRepoName} -Dsonar.projectKey=${env.gitlabTargetRepoName} -Dsonar.projectVersion=${env.gitlabSourceBranch}"
}
}
post{
success{
mail (
to:"${env.gitlabUserEmail}",
subject:"SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
body:"SUCCESSFUL\n \t项目名:${env.JOB_NAME}\n \t构建ID: ${env.BUILD_NUMBER}\n \t输出:${env.BUILD_URL}console\n \tsonarqube:${ipaddress}9000/sonarqube/dashboard?id=${keeName}\n \tjacoco:${ipaddress}8080/job/${env.JOB_NAME}/${env.BUILD_NUMBER}/jacoco\n \tJunit:${ipaddress}8080/job/${env.JOB_NAME}/${env.BUILD_NUMBER}/testReport"
)
}
}
}
}
}