Jenkinsfile各指令详解

以下是 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)


✅ 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/)。

✅ 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)


✅ 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'
    }
}
相关推荐
Dontla8 分钟前
Linux怎么查看时区信息?(Linux时区)(tzselect)
linux·运维·服务器
Linux运维技术栈33 分钟前
解决 Nginx 反代中 proxy_ssl_name 环境变量失效问题:网页能打开但登录失败
运维·nginx·ssl
鱼骨不是鱼翅1 小时前
Linux---第三天---权限
linux·运维·服务器
遇见火星3 小时前
Jenkins全链路教程——Jenkins用户权限矩阵配置
java·矩阵·jenkins
遇见火星3 小时前
Jenkins全链路教程——Jenkins项目创建与基础构建
运维·jenkins
jingfeng5144 小时前
浅谈对linux进程池的理解
linux·运维·服务器
西阳未落4 小时前
Linux(17)——Linux进程信号(下)
linux·运维·服务器
电商数据girl5 小时前
关于私域电商网站,接入电商API数据接口示例
运维·开发语言·网络·python·json·php
数据库知识分享者小北5 小时前
阿里云DMS Data Copilot——高效智能的数据助手,助力企业实现数据驱动的未来
运维·阿里云·oracle·copilot