Commit 75e44936 75e449367cd91c27899fd33479abdd4481ed6ab1 by chenjing

更新配置

1 parent a7e0df29
1 pipeline { 1 pipeline {
2 agent any 2 agent any
3 3
4 parameters {
5 choice(
6 name: 'DEPLOY_ENV',
7 choices: ['test', 'uat', 'prod'],
8 description: '选择部署环境'
9 )
10 }
11
12 triggers { 4 triggers {
13 cron('0 10 * * *') 5 cron('0 10 * * *')
14 } 6 }
...@@ -16,7 +8,10 @@ pipeline { ...@@ -16,7 +8,10 @@ pipeline {
16 environment { 8 environment {
17 PYTHON_VERSION = '3.8' 9 PYTHON_VERSION = '3.8'
18 PROJECT_NAME = 'api_test' 10 PROJECT_NAME = 'api_test'
19 DEPLOY_ENV = "${params.DEPLOY_ENV ?: 'test'}" 11 // 根据 Jenkins Job 名称自动识别环境
12 // Job 名称格式: APITEST-test / APITEST-uat / APITEST-prod
13 // 提取最后一个 "-" 后面的部分作为环境名
14 DEPLOY_ENV = "${env.JOB_NAME.split('-').last()}"
20 IP_HOST_TEST = 'ai-test.hikoon.com' 15 IP_HOST_TEST = 'ai-test.hikoon.com'
21 IP_HOST_UAT = 'ai-uat.hikoon.com' 16 IP_HOST_UAT = 'ai-uat.hikoon.com'
22 IP_HOST_PROD = 'api.hikoon.com' 17 IP_HOST_PROD = 'api.hikoon.com'
...@@ -50,15 +45,14 @@ pipeline { ...@@ -50,15 +45,14 @@ pipeline {
50 steps { 45 steps {
51 echo "开始执行API自动化测试 (环境: ${DEPLOY_ENV})..." 46 echo "开始执行API自动化测试 (环境: ${DEPLOY_ENV})..."
52 script { 47 script {
53 def ipHost = 'ai-test.hikoon.com' 48 def ipHost = env.IP_HOST_TEST
54 if (env.DEPLOY_ENV == 'uat') { 49 if (env.DEPLOY_ENV == 'uat') {
55 ipHost = env.IP_HOST_UAT 50 ipHost = env.IP_HOST_UAT
56 } else if (env.DEPLOY_ENV == 'prod') { 51 } else if (env.DEPLOY_ENV == 'prod') {
57 ipHost = env.IP_HOST_PROD 52 ipHost = env.IP_HOST_PROD
58 } else {
59 ipHost = env.IP_HOST_TEST
60 } 53 }
61 env.IP_HOST = ipHost 54 env.IP_HOST = ipHost
55 echo "IP_HOST: ${env.IP_HOST}"
62 } 56 }
63 sh ''' 57 sh '''
64 . venv/bin/activate 58 . venv/bin/activate
...@@ -102,31 +96,7 @@ pipeline { ...@@ -102,31 +96,7 @@ pipeline {
102 allowEmptyArchive: true, 96 allowEmptyArchive: true,
103 fingerprint: true 97 fingerprint: true
104 98
105 // 发布 HTML 报告到 Jenkins 99 echo "报告已归档到 Jenkins Artifacts"
106 script {
107 def reportDir = "reports/${env.DEPLOY_ENV}"
108 sh "ls -la ${reportDir} 2>/dev/null || echo 'Directory not found'"
109
110 def htmlFile = sh(
111 script: "find ${reportDir} -maxdepth 1 -name '*.html' -type f 2>/dev/null | sort -r | head -1 | xargs basename",
112 returnStdout: true
113 ).trim()
114
115 if (htmlFile) {
116 echo "找到HTML报告: ${htmlFile}"
117 publishHTML([
118 reportDir: reportDir,
119 reportFiles: htmlFile,
120 reportName: "Test Report [${env.DEPLOY_ENV}]",
121 keepAll: true,
122 alwaysLinkToLastBuild: true,
123 allowMissing: false
124 ])
125 echo "HTML报告已发布到Jenkins"
126 } else {
127 echo "警告: 未找到HTML报告文件 (路径: ${reportDir})"
128 }
129 }
130 } 100 }
131 101
132 success { 102 success {
...@@ -138,4 +108,3 @@ pipeline { ...@@ -138,4 +108,3 @@ pipeline {
138 } 108 }
139 } 109 }
140 } 110 }
141
......