以下是 Jenkinsfile 常用指令详解及使用方式,适用于 Declarative Pipeline(推荐方式):
✅ 1. 基本结构
pipeline {
agent any
stages {
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: maven
image: maven:3.9.6
command: ['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: maven
image: maven:3.9.6
command:
- sleep
args:
- 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'
}
}