Commit f1efc4a6 authored by Auto Backup's avatar Auto Backup

feat: 调整流水线参数配置

- appConfigName 默认值改为 standard
- SysName 默认值改为 operation_platform
- AGENT_LABEL 默认值改为 ljgWinMachine
- NODE_WORKING_DIR 和 BRANCH_NAME 等路径调整
parent e5ace154
// 新增带返回值的跨平台 PowerShell 执行函数
def runPowerShellWithOutput(script) {
try {
try {
if (isUnix()) {
// Unix 系统使用 sh 执行命令
return sh(script: "${script}", returnStdout: true).trim()
......@@ -27,7 +27,7 @@ def runPowerShellWithOutput(script) {
*/
def executeGitLog(format, commitArg = '-1') {
def command = "git log ${commitArg} --pretty=${format}"
if (isUnix()) {
// Unix 系统直接使用 sh,% 不需要转义
return sh(script: command, returnStdout: true).trim()
......@@ -51,20 +51,20 @@ def getGitCommitInfo(commitHash = '') {
email: '',
bugId: ''
]
// 确定使用哪个 commit
def commitArg = commitHash ? "${commitHash}" : "-1"
try {
// 使用统一的 executeGitLog 函数获取各项信息
result.author = executeGitLog('%an', commitArg)
result.message = executeGitLog('%B', commitArg)
result.email = executeGitLog('%ae', commitArg)
// 提取 Bug ID
def matcher = (result.message =~ /#[0-9]+/)
result.bugId = matcher ? matcher[0] : "未关联Bug"
} catch (Exception e) {
echo "获取 Git 提交信息失败: ${e.message}"
result.author = "未知提交人"
......@@ -72,7 +72,7 @@ def getGitCommitInfo(commitHash = '') {
result.email = "unknown@example.com"
result.bugId = "未关联Bug"
}
return result
}
......@@ -81,7 +81,7 @@ def getGitCommitInfo(commitHash = '') {
// // 使用 Cron 表达式,实现极其精准的控制
// // 例如:每 2 分钟扫描一次分支变动
// // parameterizedCron('H/2 * * * *'),
// // 或者使用特定的扫描触发器
// // 这里的 '2' 代表分钟,你可以随意改成任何数字
// cron('H/1 * * * *')
......@@ -90,24 +90,24 @@ def getGitCommitInfo(commitHash = '') {
pipeline {
// 全局变量定义 // 变量名 = "值" (中间不要有空行或乱放的注释)
// environment {
// GIT_EXE = 'D:\\Git\\bin\\git.exe'
// NODE_HOME = 'C:\\Program Files\\nodejs'
// }
parameters {
string(name: 'appConfigName', defaultValue: 'dh', description: 'Description for appConfigName eg:standard , dh ,xgm')
string(name: 'SysName', defaultValue: 'report_tool', description: 'Description for SysName:operation_platform,report_tool ')
string(name: 'appConfigName', defaultValue: 'standard', description: 'Description for appConfigName eg:standard , dh ,xgm')
string(name: 'SysName', defaultValue: 'operation_platform', description: 'Description for SysName:operation_platform,report_tool ')
string(name: 'webapps', defaultValue: 'unknown', description: 'Description for audit webapps')
string(name: 'avg', defaultValue: 'report', description: 'Description for npm run build:avg 参数')
string(name: 'avg', defaultValue: '', description: 'Description for npm run build:avg 参数')
string(
name: 'AGENT_LABEL',
defaultValue: 'windowsPackageMachine',
defaultValue: 'ljgWinMachine',
description: '输入 agent 节点 (可选:ljgWinMachine or lzxWinMachine)'
)
string(name: 'NODE_WORKING_DIR', defaultValue: 'G:\\cpas-framework', description: 'electron打包脚本执行的工作目录 G:\\cpas-framework')
string(name: 'BRANCH_NAME', defaultValue: 'release-report-060320', description: '要构建的分支名称')
string(name: 'NODE_WORKING_DIR', defaultValue: 'C:\Users\Administrator\Desktop\youdatasumCode\framework', description: 'electron打包脚本执行的工作目录 G:\\cpas-framework')
string(name: 'BRANCH_NAME', defaultValue: 'unknown', description: '要构建的分支名称')
string(name: 'INSTALLATION_DIR', defaultValue: '', description: '安装包打包目录:E:/CPAS6-101 UFCPAS6.0 致同智审IAS版_测试版')
string(name: 'PUBLISH_DIR', defaultValue: 'E:/产品安装包/05 大客户专版/109 致同/CPAS6.0 IAS版', description: '发布目录:E:/产品安装包/05 大客户专版/109 致同/CPAS6.0 IAS版')
}
......@@ -125,33 +125,33 @@ pipeline {
def commitId = env.GIT_COMMIT ?: "未知Commit" // 优先使用 env.GIT_COMMIT 获取最新的 Commit ID 和相关信息
def actionType = "SKIP1" // 默认不执行
echo "webapps: ${params.webapps}"
// --- 优先级 1: 检查 Tag ---
// 1. 自动识别是 Tag 还是 分支 //
// 1. 自动识别是 Tag 还是 分支 //
if (env.TAG_NAME) {
echo "检测到发布标签: ${env.TAG_NAME},准备打包正式版镜像..."
// 执行构建逻辑
actionType = "TAG_RELEASE"
// runPowerShellWithOutput("node ./scripts/build.js --cpasBusiness ${params.cpasBusiness} --framework ${params.framework} --cpasUi ${params.cpasUi} --avg ${params.avg} --commitId ${commitId}")
}
}
// --- 优先级 2: 检查 Commit Message ---
else {
// 2. 抓取 Commit 信息(使用统一函数)
def branch = env.BRANCH_NAME ?: '' // 若 env.BRANCH_NAME 为 null,则转为空字符串
echo "当前分支: ${branch}"
def gitInfo = getGitCommitInfo()
def commitMsg = gitInfo.message
if (commitMsg.contains("[deploy]") ||commitMsg.contains("[部署]") || commitMsg.contains("[发布]") ) {
echo "🚀 [高优先级] 检测到 [deploy] 关键字,执行强制构建..."
actionType = "FORCE_DEPLOY"
}
}
// --- 优先级 3: 检查分支 ---
// --- 优先级 3: Release 分支判断 (正则匹配 release/*) ---
// 使用 ==~ 进行全匹配,或者 .startsWith()
else if (env.BRANCH_NAME ==~ /release.*/) {
else if (env.BRANCH_NAME ==~ /release.*/) {
echo "🛡️ 检测到发布分支: ${env.BRANCH_NAME},准备进行预发布构建..."
actionType = "PRE_RELEASE"
}
......@@ -160,7 +160,7 @@ pipeline {
actionType = "REGULAR_BUILD"
echo "🔍 检测到核心分支: ${env.BRANCH_NAME},执行常规构建..."
}
}
......@@ -179,22 +179,22 @@ pipeline {
if (params.avg) {
buildParams += " --avg=${params.avg}"
}
if (params.BRANCH_NAME) {
buildParams += " --branch=${params.BRANCH_NAME}"
if (params.BRANCH_NAME && params.BRANCH_NAME = "unknown") {
buildParams += " --branch=${params.BRANCH_NAME}"
}
// 执行你的 Node.js 构建脚本
// 注意:${params.xxx} 建议加上 trim() 防止空格报错
// 处理 webapps 参数并执行 S3 下载
if (params.webapps != "unknown") {
echo "检测到 webapps 参数: ${params.webapps},准备执行 S3 下载..."
// 构建参数字符串
buildParams += " --webapps=${params.webapps} "
echo "执行构建参数:node ./BuildScripts/ai-build.js ${buildParams}"
// 执行 AI 构建脚本
def buildResult = runPowerShellWithOutput("cd \"${params.NODE_WORKING_DIR}\"; node ./BuildScripts/ai-build.js ${buildParams}")
echo "AI 构建脚本执行结果: ${buildResult}"
......@@ -203,9 +203,9 @@ pipeline {
echo "执行构建参数: ${buildParams}"
def buildResult = runPowerShellWithOutput("cd \"${params.NODE_WORKING_DIR}\" ; node ./BuildScripts/ai-build.js ${buildParams}")
echo "AI 构建脚本执行结果: ${buildResult}"
}
// 如果提供了 INSTALLATION_DIR,则执行安装包构建
if (params.INSTALLATION_DIR && params.INSTALLATION_DIR.trim()) {
echo "检测到 INSTALLATION_DIR 参数: ${params.INSTALLATION_DIR},执行安装包构建..."
......@@ -213,16 +213,16 @@ pipeline {
def installBuildResult = runPowerShellWithOutput("node ./build.js --dest \"${params.INSTALLATION_DIR}\" --src \"${srcDir}\"")
echo "安装包构建结果: ${installBuildResult}"
}
} else {
echo "⏹️ 决策结论: 无需构建,正在跳过..."
currentBuild.result = 'SUCCESS'
}
} catch (Exception e) {
echo "AI 自动决策中心发生错误: ${e.message}"
currentBuild.result = 'FAILURE'
......@@ -231,7 +231,7 @@ pipeline {
// 执行下游项目
}
}
}
post {
......@@ -240,10 +240,10 @@ pipeline {
try {
// 优先使用 env.GIT_COMMIT 获取最新的 Commit ID
def commitId = env.GIT_COMMIT ?: "未知Commit"
// 使用统一函数获取 Git 提交信息
def gitInfo = getGitCommitInfo(commitId)
echo "--- 自动决策中心报告 ---"
echo "提交信息: ${gitInfo.message}"
echo "关联任务: ${gitInfo.bugId}"
......@@ -253,7 +253,7 @@ pipeline {
if (gitInfo.bugId != "未关联Bug") {
echo "检测到 Bug 修复任务,准备执行回归测试..."
}
// 使用dingtalk插件提供的指令,Cpas6Package 是你在系统设置里定义的 ID,(这个一定不能改重要)
/* dingtalk (
robot: 'Cpas6Package',
......@@ -292,4 +292,4 @@ pipeline {
}
}
}
}
\ No newline at end of file
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment