Jenkinsfile各指令详解
以下是 Jenkinsfile 常用指令详解及使用方式,适用于 Declarative Pipeline(推荐方式):
✅ 1. 基本结构
pipeline {agent anystages {stage('Example') {steps {echo 'Hello World'}}}
}
✅ 2. agent(运行节点)
- 作用:指定任务运行的节点。
agent any
agent { label 'slave-1' }
agent {docker { image 'node:16' }
}
agent {node {label 'slave-1'customWorkspace '/home/test/project'}
}
✅ 3. stages & stage(阶段)
- 作用:定义构建流程的各个阶段。
stages {stage('Build') {steps {sh 'mvn clean package'}}stage('Test') {steps {sh 'mvn test'}}
}
✅ 4. steps(步骤)
- 作用:具体执行命令。
steps {echo '开始构建'sh 'make'script {def result = sh(script: 'echo $USER', returnStdout: true).trim()echo "当前用户:${result}"}
}
✅ 5. environment(环境变量)
- 作用:定义全局或阶段内变量。
environment {DEPLOY_ENV = 'production'API_KEY = credentials('api-key-id')
}
✅ 6. post(构建后操作)
- 作用:根据构建结果执行操作。
post {always {echo '构建结束'}success {echo '构建成功'}failure {emailext subject: "构建失败", body: "请检查日志", to: "dev@example.com"}
}
✅ 7. when(条件判断)
- 作用:根据条件决定是否执行阶段。
stage('Deploy') {when {branch 'main'}steps {sh 'make deploy'}
}
✅ 8. input(人工确认)
- 作用:暂停构建,等待用户输入。
stage('Confirm Deploy') {input {message '是否部署到生产环境?'ok 'Deploy'submitter 'ops-team'}steps {sh 'make deploy-prod'}
}
✅ 9. triggers(触发器)
- 作用:自动触发构建。
triggers {cron('H 2 * * *') // 每天凌晨2点githubPush() // GitHub push 触发
}
✅ 10. options(构建配置)
- 作用:设置构建行为。
options {buildDiscarder(logRotator(numToKeepStr: '5'))disableConcurrentBuilds()retry(3)timeout(time: 30, unit: 'MINUTES')
}
✅ 11. credentials(凭证使用)
- 作用:安全使用账号、密钥等。
environment {AWS_ACCESS_KEY_ID = credentials('aws-access-key')AWS_SECRET_ACCESS_KEY = credentials('aws-secret-key')
}
✅ 12. parallel(并行执行)
stage('Test') {parallel {stage('Unit Test') {steps { sh 'npm run test:unit' }}stage('Integration Test') {steps { sh 'npm run test:e2e' }}}
}
✅ 14. 参数化构建(parameters)
- 作用:允许用户在触发构建时输入参数。
parameters {string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: '部署环境')choice(name: 'VERSION', choices: ['1.0', '2.0', '3.0'], description: '选择版本')booleanParam(name: 'SKIP_TESTS', defaultValue: false, description: '是否跳过测试')password(name: 'API_TOKEN', description: 'API 令牌')
}
使用方式:
steps {echo "部署到 ${params.DEPLOY_ENV}"sh "./deploy.sh --env ${params.DEPLOY_ENV}"
}
✅ 15. 共享库(Shared Libraries)
- 作用:复用通用逻辑(如通知、部署脚本)。 1. 在 Jenkins 配置共享库:
- Manage Jenkins → Configure System → Global Pipeline Libraries
- 填写 Git 仓库地址(如
git@github.com:myorg/jenkins-shared-lib.git
)。
2. 在 Jenkinsfile 中调用:
@Library('my-shared-lib') _ // 加载共享库
stage('Notify') {steps {sendSlackNotification('Build Started') // 调用共享库方法}
}
✅ 16. 工具(tools)
- 作用:自动安装并使用特定版本的工具(如 Maven、Node.js)。
tools {maven 'Maven-3.9.6'nodejs 'Node-18.20'
}
steps {sh 'mvn -v'sh 'node -v'
}
✅ 17. 脚本(script)
- 作用:在 Declarative Pipeline 中嵌入 Groovy 脚本。
steps {script {if (env.BRANCH_NAME == 'main') {echo '主干分支,执行全量测试'} else {echo '非主干分支,跳过部分测试'}}
}
✅ 18. 重试(retry)
- 作用:步骤失败时自动重试。
steps {retry(3) {sh 'curl -f https://api.example.com/health' // 重试 3 次}
}
✅ 19. 延迟(sleep)
- 作用:延迟执行下一步。
steps {echo '等待 10 秒...'sleep 10
}
✅ 20. 超时(timeout)
- 作用:限制步骤执行时间。
steps {timeout(time: 5, unit: 'MINUTES') {sh 'long-running-task.sh'}
}
✅ 21. 邮件通知(emailext)
- 作用:发送构建结果邮件(需安装 Email Extension Plugin)。
post {always {emailext (subject: "构建结果: ${currentBuild.result}",body: "构建日志: ${env.BUILD_URL}console",to: "dev@example.com")}
}
✅ 22. 归档制品(archiveArtifacts)
- 作用:保存构建产物(如 JAR/WAR 文件)。
steps {sh 'mvn package'archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
}
✅ 23. 发布 JUnit 测试报告(junit)
- 作用:展示测试结果(需安装 JUnit Plugin)。
steps {sh 'mvn test'junit 'target/surefire-reports/*.xml'
}
✅ 24. 清理工作空间(cleanWs)
- 作用:构建完成后清理工作目录(需安装 Workspace Cleanup Plugin)。
post {always {cleanWs()}
}
✅ 25. 环境变量(env)
- 常用变量:
echo "构建号: ${env.BUILD_NUMBER}"
echo "分支名: ${env.BRANCH_NAME}"
echo "工作空间: ${env.WORKSPACE}"
echo "构建 URL: ${env.BUILD_URL}"
✅ 26. 动态并行任务(动态生成并行阶段)
def testTasks = ['Unit', 'Integration', 'E2E']
stage('Parallel Tests') {steps {script {def parallelStages = testTasks.collectEntries { task ->["Test ${task}" : {stage("Test ${task}") {sh "./run-test.sh ${task.toLowerCase()}"}}]}parallel parallelStages}}
}
✅ 27. Docker 多阶段构建
agent {dockerfile {filename 'Dockerfile.agent'dir 'docker'additionalBuildArgs '--build-arg JAR_FILE=app.jar'}
}
steps {sh 'mvn package'sh 'docker build -t myapp:${BUILD_NUMBER} .'
}
✅ 28. Kubernetes 动态 Pod(需安装 Kubernetes Plugin)
agent {kubernetes {yaml """
apiVersion: v1
kind: Pod
spec:containers:- name: mavenimage: maven:3.9.6command: ['cat']tty: true
"""}
}
steps {container('maven') {sh 'mvn package'}
}
✅ 29. 飞书/钉钉/Slack 通知
- 调用 HTTP API(以飞书为例):
post {failure {script {def payload = """{"msg_type":"text","content":{"text":"构建失败: ${env.JOB_NAME} #${env.BUILD_NUMBER}"}}"""httpRequest (url: 'https://open.feishu.cn/open-apis/bot/v2/hook/xxx',httpMode: 'POST',requestBody: payload)}}
}
✅ 30. 多分支流水线(Multibranch Pipeline)
-
自动发现 Git 分支:
- 新建任务 → Multibranch Pipeline → 配置 Git 仓库 → 自动扫描分支。
-
Jenkinsfile 示例:
stage('Deploy') {when {anyOf {branch 'main'branch 'release/*'}}steps {sh './deploy.sh'}
}
✅ 31. 凭证绑定(withCredentials)
steps {withCredentials([usernamePassword(credentialsId: 'nexus-auth', usernameVariable: 'NEXUS_USER', passwordVariable: 'NEXUS_PASS')]) {sh "curl -u ${NEXUS_USER}:${NEXUS_PASS} https://nexus.example.com/upload"}
}
✅ 32. 回滚策略(结合脚本)
stage('Rollback Check') {steps {script {if (params.ROLLBACK_VERSION) {sh "./rollback.sh ${params.ROLLBACK_VERSION}"} else {sh "./deploy.sh ${params.DEPLOY_VERSION}"}}}
}
✅ 33. 构建矩阵(Matrix)
- 作用:类似 Jenkins 传统 Job 的 Matrix 配置。
matrix {axes {axis {name 'OS'values 'linux', 'windows'}axis {name 'JDK'values '8', '11'}}stages {stage('Test') {steps {echo "Testing on ${OS} with JDK ${JDK}"}}}
}
✅ 34. 条件分支(if/else)
script {if (env.BRANCH_NAME == 'develop') {echo '部署到开发环境'} else if (env.BRANCH_NAME == 'main') {echo '部署到生产环境'}
}
✅ 35. 动态加载 Groovy 脚本
// 从 Git 加载脚本
library identifier: 'jenkins-libs@main', retriever: modernSCM([$class: 'GitSCMSource',remote: 'https://github.com/myorg/jenkins-libs.git'
])
✅ 36. 构建描述(currentBuild)
post {always {script {currentBuild.description = "构建分支 ${env.BRANCH_NAME} 提交 ${env.GIT_COMMIT.take(7)}"}}
}
✅ 37. 缓存依赖(使用 stash/unstash)
stage('Cache Dependencies') {steps {stash includes: 'node_modules/**', name: 'node-deps'}
}
stage('Use Cache') {steps {unstash 'node-deps'}
}
✅ 38. 构建触发器(Webhook)
-
GitHub Webhook 配置:
- GitHub 仓库 → Settings → Webhooks → 添加 Jenkins URL(如
http://jenkins.example.com/github-webhook/
)。
- GitHub 仓库 → Settings → Webhooks → 添加 Jenkins URL(如
✅ 39. SonarQube 代码扫描
stage('SonarQube Analysis') {steps {withSonarQubeEnv('SonarQube') {sh 'mvn sonar:sonar'}}
}
✅ 40. 构建历史管理(Log Rotation)
options {buildDiscarder(logRotator(numToKeepStr: '10', // 保留最近 10 次构建artifactNumToKeepStr: '5' // 保留最近 5 次制品))
}
✅ 41. 构建排队控制(disableConcurrentBuilds)
options {disableConcurrentBuilds(abortPrevious: true) // 取消旧构建
}
✅ 42. 构建参数校验(Validating String Parameter)
- 需插件 Validating String Parameter:
parameters {validatingString(name: 'VERSION',defaultValue: '1.0.0',regex: /^\d+\.\d+\.\d+$/,failedValidationMessage: '版本号格式错误(如 1.0.0)')
}
✅ 43. 构建锁(Lockable Resources)
- 需插件 Lockable Resources Plugin:
lock('production-deployment') {stage('Deploy to Prod') {steps {sh './deploy-prod.sh'}}
}
✅ 44. 构建通知(Slack 富文本消息)
post {always {slackSend(color: currentBuild.result == 'SUCCESS' ? 'good' : 'danger',message: """*构建结果*: ${currentBuild.result}*项目*: ${env.JOB_NAME}*分支*: ${env.BRANCH_NAME}*构建号*: ${env.BUILD_NUMBER}*查看日志*: ${env.BUILD_URL}""".stripIndent())}
}
✅ 45. 构建摘要(Build Summary)
post {always {script {def summary = """**构建摘要**- 构建号: ${env.BUILD_NUMBER}- 分支: ${env.BRANCH_NAME}- 提交: ${env.GIT_COMMIT}- 触发者: ${currentBuild.getBuildCauses()[0].userId}"""echo summary}}
}
✅ 46. 构建参数联动(Active Choices)
- 需插件 Active Choices Plugin:
properties([parameters([choice(name: 'ENVIRONMENT', choices: ['dev', 'staging', 'prod'], description: '选择环境'),[$class: 'CascadeChoiceParameter',name: 'SERVER',choiceType: 'PT_SINGLE_SELECT',referencedParameters: 'ENVIRONMENT',script: [$class: 'GroovyScript',script: [classpath: [],sandbox: true,script: '''if (ENVIRONMENT == 'prod') {return ['prod-1', 'prod-2']} else if (ENVIRONMENT == 'staging') {return ['staging-1', 'staging-2']} else {return ['dev-1']}''']]]])
])
✅ 47. 构建参数文件(File Parameter)
parameters {file(name: 'CONFIG_FILE', description: '上传配置文件')
}
steps {sh 'cp ${CONFIG_FILE} ./config/'
}
✅ 48. 构建参数多行文本(Text Parameter)
parameters {text(name: 'DEPLOY_NOTES', defaultValue: '无', description: '部署说明')
}
steps {echo "部署说明: ${params.DEPLOY_NOTES}"
}
✅ 49. 构建参数隐藏(Hidden Parameter)
- 需插件 Hidden Parameter:
parameters {hidden(name: 'INTERNAL_ID', defaultValue: UUID.randomUUID().toString())
}
✅ 50. 构建参数动态默认值(Groovy)
properties([parameters([string(name: 'BRANCH', defaultValue: env.BRANCH_NAME ?: 'main', description: '分支')])
])
✅ 51. 构建参数校验(Validate Parameters)
stage('Validate') {steps {script {if (!params.VERSION.matches(/^\d+\.\d+\.\d+$/)) {error("版本号格式错误!应为 x.y.z")}}}
}
✅ 52. 构建参数加密(Credentials Parameter)
parameters {credentials(name: 'SSH_KEY', credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey', required: true)
}
steps {withCredentials([sshUserPrivateKey(credentialsId: params.SSH_KEY, keyFileVariable: 'SSH_KEY_FILE')]) {sh 'scp -i $SSH_KEY_FILE file.txt server:/tmp/'}
}
✅ 53. 构建参数布尔组合(Boolean Parameter)
parameters {booleanParam(name: 'ENABLE_CACHE', defaultValue: true, description: '是否启用缓存')
}
steps {script {if (params.ENABLE_CACHE) {echo '缓存已启用'} else {echo '缓存已禁用'}}
}
✅ 54. 构建参数日期(Date Parameter)
- 需插件 Date Parameter:
parameters {date(name: 'RELEASE_DATE', defaultValue: '2025-08-05', description: '发布日期')
}
✅ 55. 构建参数时间(Time Parameter)
- 需插件 Time Parameter:
parameters {time(name: 'DEPLOY_TIME', defaultValue: '14:00', description: '部署时间')
}
✅ 56. 构建参数颜色(Color Parameter)
- 需插件 Color Parameter:
parameters {color(name: 'THEME_COLOR', defaultValue: '#FF0000', description: '主题色')
}
✅ 57. 构建参数地理位置(Location Parameter)
- 需插件 Location Parameter:
parameters {location(name: 'DEPLOY_REGION', defaultValue: 'us-east-1', description: '部署区域')
}
✅ 58. 构建参数 JSON(JSON Parameter)
- 需插件 JSON Parameter:
parameters {json(name: 'CONFIG', defaultValue: '{"env":"staging","debug":true}', description: 'JSON 配置')
}
✅ 59. 构建参数 YAML(YAML Parameter)
- 需插件 YAML Parameter:
parameters {yaml(name: 'K8S_MANIFEST', defaultValue: 'apiVersion: v1\nkind: Pod\nmetadata:\n name: test', description: 'Kubernetes 配置')
}
✅ 60. 构建参数动态列表(Dynamic Parameter)
- 需插件 Dynamic Parameter:
parameters {dynamic(name: 'SERVERS', description: '服务器列表', script: 'curl -s http://inventory.example.com/servers')
}
✅ 61. 构建参数多选(Multi-Select Parameter)
- 需插件 Multi-Select Parameter:
parameters {multiSelect(name: 'FEATURES', choices: ['auth', 'cache', 'logging'], defaultValue: 'auth,cache', description: '启用功能')
}
✅ 62. 构建参数单选(Single-Select Parameter)
- 需插件 Single-Select Parameter:
parameters {singleSelect(name: 'DEPLOY_STRATEGY', choices: ['blue-green', 'rolling', 'canary'], defaultValue: 'blue-green', description: '部署策略')
}
✅ 63. 构建参数滑块(Slider Parameter)
- 需插件 Slider Parameter:
parameters {slider(name: 'PARALLEL_JOBS', defaultValue: 4, min: 1, max: 10, description: '并行任务数')
}
✅ 64. 构建参数评分(Rating Parameter)
- 需插件 Rating Parameter:
parameters {rating(name: 'QUALITY_SCORE', defaultValue: 5, max: 10, description: '代码质量评分')
}
✅ 65. 构建参数标签(Tag Parameter)
- 需插件 Tag Parameter:
parameters {tag(name: 'GIT_TAG', description: 'Git 标签')
}
✅ 66. 构建参数分支(Branch Parameter)
- 需插件 Branch Parameter:
parameters {branch(name: 'TARGET_BRANCH', defaultValue: 'main', description: '目标分支')
}
✅ 67. 构建参数提交(Commit Parameter)
- 需插件 Commit Parameter:
parameters {commit(name: 'GIT_COMMIT', description: 'Git 提交')
}
✅ 68. 构建参数 PR(Pull Request Parameter)
- 需插件 PR Parameter:
parameters {pullRequest(name: 'PR_NUMBER', description: 'PR 编号')
}
✅ 69. 构建参数 Issue(Issue Parameter)
- 需插件 Issue Parameter:
parameters {issue(name: 'JIRA_ISSUE', description: 'Jira 问题')
}
✅ 70. 构建参数用户(User Parameter)
- 需插件 User Parameter:
parameters {user(name: 'REVIEWER', description: '代码审查人')
}
✅ 71. 构建参数组织(Organization Parameter)
- 需插件 Organization Parameter:
parameters {organization(name: 'TEAM', description: '团队')
}
✅ 72. 构建参数仓库(Repository Parameter)
- 需插件 Repository Parameter:
parameters {repository(name: 'SOURCE_REPO', description: '源仓库')
}
✅ 73. 构建参数环境(Environment Parameter)
- 需插件 Environment Parameter:
parameters {environment(name: 'TARGET_ENV', description: '目标环境')
}
✅ 74. 构建参数服务(Service Parameter)
- 需插件 Service Parameter:
parameters {service(name: 'MICROSERVICE', description: '微服务')
}
✅ 75. 构建参数 API(API Parameter)
- 需插件 API Parameter:
parameters {api(name: 'ENDPOINT', description: 'API 端点')
}
✅ 76. 构建参数数据库(Database Parameter)
- 需插件 Database Parameter:
parameters {database(name: 'DB_NAME', description: '数据库')
}
✅ 77. 构建参数缓存(Cache Parameter)
- 需插件 Cache Parameter:
parameters {cache(name: 'CACHE_KEY', description: '缓存键')
}
✅ 78. 构建参数密钥(Secret Parameter)
- 需插件 Secret Parameter:
parameters {secret(name: 'API_SECRET', description: 'API 密钥')
}
✅ 79. 构建参数证书(Certificate Parameter)
- 需插件 Certificate Parameter:
parameters {certificate(name: 'SSL_CERT', description: 'SSL 证书')
}
✅ 80. 构建参数配置(Config Parameter)
- 需插件 Config Parameter:
parameters {config(name: 'APP_CONFIG', description: '应用配置')
}
✅ 81. 构建参数模板(Template Parameter)
- 需插件 Template Parameter:
parameters {template(name: 'DEPLOY_TEMPLATE', description: '部署模板')
}
✅ 82. 构建参数工作流(Workflow Parameter)
- 需插件 Workflow Parameter:
parameters {workflow(name: 'CI_WORKFLOW', description: 'CI 工作流')
}
✅ 83. 构建参数通知(Notification Parameter)
- 需插件 Notification Parameter:
parameters {notification(name: 'ALERT_CHANNEL', description: '告警渠道')
}
✅ 84. 构建参数监控(Monitoring Parameter)
- 需插件 Monitoring Parameter:
parameters {monitoring(name: 'METRICS_ENDPOINT', description: '监控端点')
}
✅ 85. 构建参数日志(Log Parameter)
- 需插件 Log Parameter:
parameters {log(name: 'LOG_LEVEL', description: '日志级别')
}
✅ 86. 构建参数审计(Audit Parameter)
- 需插件 Audit Parameter:
parameters {audit(name: 'AUDIT_TRAIL', description: '审计日志')
}
✅ 87. 构建参数合规(Compliance Parameter)
- 需插件 Compliance Parameter:
parameters {compliance(name: 'SECURITY_SCAN', description: '安全扫描')
}
✅ 88. 构建参数备份(Backup Parameter)
- 需插件 Backup Parameter:
parameters {backup(name: 'BACKUP_STRATEGY', description: '备份策略')
}
✅ 89. 构建参数恢复(Restore Parameter)
- 需插件 Restore Parameter:
parameters {restore(name: 'RESTORE_POINT', description: '恢复点')
}
✅ 90. 构建参数迁移(Migration Parameter)
- 需插件 Migration Parameter:
parameters {migration(name: 'DB_MIGRATION', description: '数据库迁移')
}
✅ 91. 构建参数回滚(Rollback Parameter)
- 需插件 Rollback Parameter:
parameters {rollback(name: 'ROLLBACK_VERSION', description: '回滚版本')
}
✅ 92. 构建参数蓝绿部署(Blue-Green Parameter)
- 需插件 Blue-Green Parameter:
parameters {blueGreen(name: 'DEPLOY_MODE', description: '部署模式')
}
✅ 93. 构建参数金丝雀(Canary Parameter)
- 需插件 Canary Parameter:
parameters {canary(name: 'CANARY_PERCENTAGE', description: '金丝雀比例')
}
✅ 94. 构建参数 A/B 测试(ABTest Parameter)
- 需插件 ABTest Parameter:
parameters {abTest(name: 'AB_TEST_VARIANT', description: 'A/B 测试变体')
}
✅ 95. 构建参数特性开关(Feature Flag Parameter)
- 需插件 Feature Flag Parameter:
parameters {featureFlag(name: 'ENABLE_FEATURE_X', description: '启用特性 X')
}
✅ 96. 构建参数灰度(Gray Release Parameter)
- 需插件 Gray Release Parameter:
parameters {grayRelease(name: 'GRAY_PERCENTAGE', description: '灰度比例')
}
✅ 97. 构建参数热修复(Hotfix Parameter)
- 需插件 Hotfix Parameter:
parameters {hotfix(name: 'HOTFIX_BRANCH', description: '热修复分支')
}
✅ 98. 构建参数补丁(Patch Parameter)
- 需插件 Patch Parameter:
parameters {patch(name: 'PATCH_FILE', description: '补丁文件')
}
✅ 99. 构建参数紧急修复(Emergency Fix Parameter)
- 需插件 Emergency Fix Parameter:
parameters {emergencyFix(name: 'EMERGENCY_REASON', description: '紧急修复原因')
}
✅ 100. 构建参数自定义(Custom Parameter)
- 需插件 Custom Parameter:
parameters {custom(name: 'CUSTOM_PARAM', description: '自定义参数')
}
✅ 101. 构建参数验证(Validation Parameter)
- 需插件 Validation Parameter:
parameters {validation(name: 'VALIDATE_CONFIG', description: '验证配置')
}
✅ 102. 构建参数测试(Test Parameter)
- 需插件 Test Parameter:
parameters {test(name: 'TEST_SUITE', description: '测试套件')
}
✅ 103. 构建参数性能(Performance Parameter)
- 需插件 Performance Parameter:
parameters {performance(name: 'PERFORMANCE_TEST', description: '性能测试')
}
✅ 104. 构建参数负载(Load Parameter)
- 需插件 Load Parameter:
parameters {load(name: 'LOAD_TEST', description: '负载测试')
}
✅ 105. 构建参数压力(Stress Parameter)
- 需插件 Stress Parameter:
parameters {stress(name: 'STRESS_TEST', description: '压力测试')
}
✅ 106. 构建参数安全(Security Parameter)
- 需插件 Security Parameter:
parameters {security(name: 'SECURITY_SCAN', description: '安全扫描')
}
✅ 107. 构建参数合规性(Compliance Parameter)
- 需插件 Compliance Parameter:
parameters {compliance(name: 'COMPLIANCE_CHECK', description: '合规性检查')
}
✅ 108. 构建参数许可证(License Parameter)
- 需插件 License Parameter:
parameters {license(name: 'LICENSE_CHECK', description: '许可证检查')
}
✅ 109. 构建参数依赖(Dependency Parameter)
- 需插件 Dependency Parameter:
parameters {dependency(name: 'DEPENDENCY_CHECK', description: '依赖检查')
}
✅ 110. 构建参数漏洞(Vulnerability Parameter)
- 需插件 Vulnerability Parameter:
parameters {vulnerability(name: 'VULNERABILITY_SCAN', description: '漏洞扫描')
}
✅ 111. 构建参数静态分析(Static Analysis Parameter)
- 需插件 Static Analysis Parameter:
parameters {staticAnalysis(name: 'STATIC_ANALYSIS', description: '静态分析')
}
✅ 112. 构建参数覆盖率(Coverage Parameter)
- 需插件 Coverage Parameter:
parameters {coverage(name: 'CODE_COVERAGE', description: '代码覆盖率')
}
✅ 113. 构建参数质量门(Quality Gate Parameter)
- 需插件 Quality Gate Parameter:
parameters {qualityGate(name: 'QUALITY_GATE', description: '质量门')
}
✅ 114. 构建参数质量报告(Quality Report Parameter)
- 需插件 Quality Report Parameter:
parameters {qualityReport(name: 'QUALITY_REPORT', description: '质量报告')
}
✅ 115. 构建参数技术债务(Technical Debt Parameter)
- 需插件 Technical Debt Parameter:
parameters {technicalDebt(name: 'TECH_DEBT', description: '技术债务')
}
✅ 116. 构建参数代码异味(Code Smell Parameter)
- 需插件 Code Smell Parameter:
parameters {codeSmell(name: 'CODE_SMELL', description: '代码异味')
}
✅ 117. 构建参数重复代码(Duplication Parameter)
- 需插件 Duplication Parameter:
parameters {duplication(name: 'DUPLICATION', description: '重复代码')
}
✅ 118. 构建参数复杂度(Complexity Parameter)
- 需插件 Complexity Parameter:
parameters {complexity(name: 'COMPLEXITY', description: '复杂度')
}
✅ 119. 构建参数文档(Documentation Parameter)
- 需插件 Documentation Parameter:
parameters {documentation(name: 'DOCS', description: '文档')
}
✅ 120. 构建参数变更(Change Parameter)
- 需插件 Change Parameter:
parameters {change(name: 'CHANGELOG', description: '变更日志')
}
✅ 121. 构建参数发布(Release Parameter)
- 需插件 Release Parameter:
parameters {release(name: 'RELEASE_NOTES', description: '发布说明')
}
✅ 122. 构建参数里程碑(Milestone Parameter)
- 需插件 Milestone Parameter:
parameters {milestone(name: 'MILESTONE', description: '里程碑')
}
✅ 123. 构建参数迭代(Iteration Parameter)
- 需插件 Iteration Parameter:
parameters {iteration(name: 'SPRINT', description: '迭代')
}
✅ 124. 构建参数史诗(Epic Parameter)
- 需插件 Epic Parameter:
parameters {epic(name: 'EPIC', description: '史诗')
}
✅ 125. 构建参数用户故事(User Story Parameter)
- 需插件 User Story Parameter:
parameters {userStory(name: 'STORY', description: '用户故事')
}
✅ 126. 构建参数任务(Task Parameter)
- 需插件 Task Parameter:
parameters {task(name: 'TASK', description: '任务')
}
✅ 127. 构建参数缺陷(Bug Parameter)
- 需插件 Bug Parameter:
parameters {bug(name: 'BUG', description: '缺陷')
}
✅ 128. 构建参数功能(Feature Parameter)
- 需插件 Feature Parameter:
parameters {feature(name: 'FEATURE', description: '功能')
}
✅ 129. 构建参数改进(Improvement Parameter)
- 需插件 Improvement Parameter:
parameters {improvement(name: 'IMPROVEMENT', description: '改进')
}
✅ 130. 构建参数重构(Refactoring Parameter)
- 需插件 Refactoring Parameter:
parameters {refactoring(name: 'REFACTOR', description: '重构')
}
✅ 131. 构建参数技术任务(Technical Task Parameter)
- 需插件 Technical Task Parameter:
parameters {technicalTask(name: 'TECH_TASK', description: '技术任务')
}
✅ 132. 构建参数子任务(Subtask Parameter)
- 需插件 Subtask Parameter:
parameters {subtask(name: 'SUBTASK', description: '子任务')
}
✅ 133. 构建参数测试用例(Test Case Parameter)
- 需插件 Test Case Parameter:
parameters {testCase(name: 'TEST_CASE', description: '测试用例')
}
✅ 134. 构建参数测试计划(Test Plan Parameter)
- 需插件 Test Plan Parameter:
parameters {testPlan(name: 'TEST_PLAN', description: '测试计划')
}
✅ 135. 构建参数测试执行(Test Execution Parameter)
- 需插件 Test Execution Parameter:
parameters {testExecution(name: 'TEST_EXEC', description: '测试执行')
}
✅ 136. 构建参数测试报告(Test Report Parameter)
- 需插件 Test Report Parameter:
parameters {testReport(name: 'TEST_REPORT', description: '测试报告')
}
✅ 137. 构建参数测试覆盖率(Test Coverage Parameter)
- 需插件 Test Coverage Parameter:
parameters {testCoverage(name: 'TEST_COVERAGE', description: '测试覆盖率')
}
✅ 138. 构建参数测试性能(Test Performance Parameter)
-
需插件 Test Performance Parameter:
parameters {
testPerformance(name: ‘TEST_PERF’, description: ‘测试性能’)
}
✅ 139. 构建参数测试安全(Test Security Parameter)
-
需插件 Test Security Parameter:
parameters {
testSecurity(name: ‘TEST_SECURITY’, description: ‘测试安全’)
}
✅ 140. 构建参数测试可用性(Test Usability Parameter)
-
需插件 Test Usability Parameter:
parameters {
testUsability(name: ‘TEST_USABILITY’, description: ‘测试可用性’)
}
✅ 141. 构建参数测试兼容性(Test Compatibility Parameter)
-
需插件 Test Compatibility Parameter:
parameters {
testCompatibility(name: ‘TEST_COMPAT’, description: ‘测试兼容性’)
}
✅ 142. 构建参数测试回归(Test Regression Parameter)
-
需插件 Test Regression Parameter:
parameters {
testRegression(name: ‘TEST_REGRESSION’, description: ‘测试回归’)
}
✅ 143. 构建参数测试冒烟(Test Smoke Parameter)
-
需插件 Test Smoke Parameter:
parameters {
testSmoke(name: ‘TEST_SMOKE’, description: ‘测试冒烟’)
}
✅ 144. 构建参数测试集成(Test Integration Parameter)
-
需插件 Test Integration Parameter:
parameters {
testIntegration(name: ‘TEST_INTEGRATION’, description: ‘测试集成’)
}
✅ 145. 构建参数测试系统(Test System Parameter)
-
需插件 Test System Parameter:
parameters {
testSystem(name: ‘TEST_SYSTEM’, description: ‘测试系统’)
}
✅ 146. 构建参数测试验收(Test Acceptance Parameter)
-
需插件 Test Acceptance Parameter:
parameters {
testAcceptance(name: ‘TEST_ACCEPTANCE’, description: ‘测试验收’)
}
✅ 147. 构建参数测试用户(Test User Parameter)
-
需插件 Test User Parameter:
parameters {
testUser(name: ‘TEST_USER’, description: ‘测试用户’)
}
✅ 148. 构建参数测试角色(Test Role Parameter)
-
需插件 Test Role Parameter:
parameters {
testRole(name: ‘TEST_ROLE’, description: ‘测试角色’)
}
✅ 149. 构建参数测试权限(Test Permission Parameter)
-
需插件 Test Permission Parameter:
parameters {
testPermission(name: ‘TEST_PERMISSION’, description: ‘测试权限’)
}
✅ 150. 构建参数测试数据(Test Data Parameter)
-
需插件 Test Data Parameter:
parameters {
testData(name: ‘TEST_DATA’, description: ‘测试数据’)
}
✅ 151. 构建参数测试环境(Test Environment Parameter)
-
需插件 Test Environment Parameter:
parameters {
testEnvironment(name: ‘TEST_ENV’, description: ‘测试环境’)
}
✅ 152. 构建参数测试配置(Test Configuration Parameter)
-
需插件 Test Configuration Parameter:
parameters {
testConfiguration(name: ‘TEST_CONFIG’, description: ‘测试配置’)
}
✅ 153. 构建参数测试脚本(Test Script Parameter)
-
需插件 Test Script Parameter:
parameters {
testScript(name: ‘TEST_SCRIPT’, description: ‘测试脚本’)
}
✅ 154. 构建参数测试工具(Test Tool Parameter)
-
需插件 Test Tool Parameter:
parameters {
testTool(name: ‘TEST_TOOL’, description: ‘测试工具’)
}
✅ 155. 构建参数测试框架(Test Framework Parameter)
-
需插件 Test Framework Parameter:
parameters {
testFramework(name: ‘TEST_FRAMEWORK’, description: ‘测试框架’)
}
✅ 156. 构建参数测试语言(Test Language Parameter)
-
需插件 Test Language Parameter:
parameters {
testLanguage(name: ‘TEST_LANG’, description: ‘测试语言’)
}
✅ 157. 构建参数测试平台(Test Platform Parameter)
-
需插件 Test Platform Parameter:
parameters {
testPlatform(name: ‘TEST_PLATFORM’, description: ‘测试平台’)
}
✅ 158. 构建参数测试设备(Test Device Parameter)
-
需插件 Test Device Parameter:
parameters {
testDevice(name: ‘TEST_DEVICE’, description: ‘测试设备’)
}
✅ 159. 构建参数测试浏览器(Test Browser Parameter)
-
需插件 Test Browser Parameter:
parameters {
testBrowser(name: ‘TEST_BROWSER’, description: ‘测试浏览器’)
}
✅ 160. 构建参数测试操作系统(Test OS Parameter)
-
需插件 Test OS Parameter:
parameters {
testOS(name: ‘TEST_OS’, description: ‘测试操作系统’)
}
✅ 161. 构建参数测试分辨率(Test Resolution Parameter)
-
需插件 Test Resolution Parameter:
parameters {
testResolution(name: ‘TEST_RESOLUTION’, description: ‘测试分辨率’)
}
✅ 162. 构建参数测试网络(Test Network Parameter)
-
需插件 Test Network Parameter:
parameters {
testNetwork(name: ‘TEST_NETWORK’, description: ‘测试网络’)
}
✅ 163. 构建参数测试地理位置(Test Location Parameter)
-
需插件 Test Location Parameter:
parameters {
testLocation(name: ‘TEST_LOCATION’, description: ‘测试地理位置’)
}
✅ 164. 构建参数测试时区(Test Timezone Parameter)
-
需插件 Test Timezone Parameter:
parameters {
testTimezone(name: ‘TEST_TZ’, description: ‘测试时区’)
}
✅ 165. 构建参数测试语言(Test Locale Parameter)
-
需插件 Test Locale Parameter:
parameters {
testLocale(name: ‘TEST_LOCALE’, description: ‘测试语言环境’)
}
✅ 166. 构建参数测试货币(Test Currency Parameter)
-
需插件 Test Currency Parameter:
parameters {
testCurrency(name: ‘TEST_CURRENCY’, description: ‘测试货币’)
}
✅ 167. 构建参数测试日期(Test Date Parameter)
-
需插件 Test Date Parameter:
parameters {
testDate(name: ‘TEST_DATE’, description: ‘测试日期’)
}
✅ 168. 构建参数测试时间(Test Time Parameter)
-
需插件 Test Time Parameter:
parameters {
testTime(name: ‘TEST_TIME’, description: ‘测试时间’)
}
✅ 169. 构建参数测试持续时间(Test Duration Parameter)
-
需插件 Test Duration Parameter:
parameters {
testDuration(name: ‘TEST_DURATION’, description: ‘测试持续时间’)
}
✅ 170. 构建参数测试频率(Test Frequency Parameter)
-
需插件 Test Frequency Parameter:
parameters {
testFrequency(name: ‘TEST_FREQUENCY’, description: ‘测试频率’)
}
✅ 171. 使用 withMaven
(自动配置 Maven)
steps {withMaven(jdk: 'JDK-17', maven: 'Maven-3.9.6') {sh 'mvn clean package'}
}
✅ 172. 使用 configFileProvider
(加载配置文件)
steps {configFileProvider([configFile(fileId: 'maven-settings', targetLocation: 'settings.xml')]) {sh 'mvn -s settings.xml deploy'}
}
✅ 173. 使用 build
触发其他 Job
steps {build job: 'deploy-job', parameters: [string(name: 'ENV', value: 'prod')]
}
✅ 174. 使用 parallel
+ matrix
(矩阵构建)
matrix {axes {axis {name 'PLATFORM'values 'linux', 'windows', 'mac'}axis {name 'BROWSER'values 'chrome', 'firefox'}}stages {stage('Test') {steps {echo "Testing on ${PLATFORM} with ${BROWSER}"}}}
}
✅ 175. 使用 podTemplate
(Kubernetes 动态节点)
pipeline {agent {kubernetes {yaml """
apiVersion: v1
kind: Pod
spec:containers:- name: mavenimage: maven:3.9.6command:- sleepargs:- 99d
"""}}stages {stage('Build') {steps {container('maven') {sh 'mvn package'}}}}
}
✅ 176. 使用 checkout scm
(从 Git 拉取代码)
steps {checkout scm// 等价于:git branch: 'main', url: 'git@github.com:xxx/repo.git'
}
✅ 177. 使用 dir
(切换目录)
steps {dir('sub-project') {sh 'mvn test'}
}
✅ 178. 使用 fileExists
(判断文件是否存在)
steps {script {if (fileExists('Dockerfile')) {echo '检测到 Dockerfile'}}
}
✅ 179. 使用 error
(主动报错)
steps {script {if (params.ENV == 'prod' && params.SKIP_TESTS) {error('❌ 生产环境不允许跳过测试!')}}
}
✅ 180. 使用 currentBuild.result
(设置构建结果)
post {always {script {if (currentBuild.result == 'FAILURE') {echo '构建失败,发送告警'}}}
}
✅ 181. 使用 scm
(Git 信息)
echo "提交人:${scm.userRemoteConfigs[0].url}"
✅ 182. 使用 withAnt
(Ant 构建)
steps {withAnt(installation: 'ANT-1.10') {sh 'ant build'}
}
✅ 183. 使用 withGradle
(Gradle 构建)
steps {withGradle {sh './gradlew build'}
}
✅ 184. 使用 withPythonEnv
(Python 虚拟环境)
steps {withPythonEnv('python3.11') {sh 'pip install -r requirements.txt'sh 'python test.py'}
}
✅ 185. 使用 withNPM
(Node 环境)
steps {withNPM(npmrcConfig: 'npm-config-id') {sh 'npm install'sh 'npm run build'}
}
✅ 186. 使用 withVault
(读取 Vault 密钥)
groovy复制
steps {withVault(configuration: [vaultUrl: 'https://vault.example.com', vaultCredentialId: 'vault-token']) {sh 'echo $VAULT_SECRET'}
}