perf(ci): run selected tests once before service builds
This commit is contained in:
Vendored
+32
-1
@@ -108,6 +108,9 @@ pipeline {
|
||||
}
|
||||
env.RESOLVED_JOB_PREFIX = jobPrefix
|
||||
env.DATABASE_CHANGE_DETECTED = 'false'
|
||||
if (env.RESOLVED_ENVIRONMENT == 'production' && params.SKIP_TESTS) {
|
||||
error('生产环境禁止跳过测试')
|
||||
}
|
||||
|
||||
List selected = []
|
||||
if (params.BUILD_MODE == 'ALL') {
|
||||
@@ -177,6 +180,33 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('统一 Maven 测试门禁') {
|
||||
when {
|
||||
expression { env.NO_SERVICE_CHANGE != 'true' && !params.SKIP_TESTS }
|
||||
}
|
||||
agent { label 'java-builder' }
|
||||
tools { maven 'maven-3.8.8' }
|
||||
steps {
|
||||
script {
|
||||
String selectedModules = env.SELECTED_SERVICES.split(',')
|
||||
.collect { it.trim() }
|
||||
.findAll { it }
|
||||
.join(',')
|
||||
echo "统一测试本次选中的服务及其公共依赖: ${selectedModules}"
|
||||
sh """
|
||||
test \"\$(git rev-parse HEAD)\" = \"${env.SOURCE_COMMIT}\"
|
||||
mvn --settings deploy/maven/settings-ci.xml --batch-mode --errors -pl ${selectedModules} -am test
|
||||
"""
|
||||
echo "统一测试门禁通过: ${env.SOURCE_COMMIT};下游单服务任务不再重复执行测试"
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
junit allowEmptyResults: true, testResults: '**/target/surefire-reports/TEST-*.xml'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('并行调度独立服务 Job') {
|
||||
when { expression { env.NO_SERVICE_CHANGE != 'true' } }
|
||||
steps {
|
||||
@@ -196,7 +226,8 @@ pipeline {
|
||||
string(name: 'IMAGE_TAG', value: env.IMAGE_TAG),
|
||||
string(name: 'ENVIRONMENT', value: env.RESOLVED_ENVIRONMENT),
|
||||
booleanParam(name: 'DEPLOY', value: params.DEPLOY),
|
||||
booleanParam(name: 'SKIP_TESTS', value: params.SKIP_TESTS),
|
||||
// 总控已完成统一测试,或用户已明确选择跳过;下游仅负责编译、打包和部署。
|
||||
booleanParam(name: 'SKIP_TESTS', value: true),
|
||||
string(name: 'IMAGE_REPOSITORY', value: env.RESOLVED_IMAGE_REPOSITORY),
|
||||
string(name: 'DOCKER_BASE_IMAGE', value: params.DOCKER_BASE_IMAGE),
|
||||
string(name: 'EVENT_BRIDGE_REGION', value: params.EVENT_BRIDGE_REGION)
|
||||
|
||||
Reference in New Issue
Block a user