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'
    }
}
相关推荐
zyl8372117 分钟前
Docker 使用手册
运维·docker·容器
古月方枘Fry36 分钟前
MGRE实验
运维·服务器
stolentime1 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
bush42 小时前
嵌入式linux学习记录四
linux·运维·学习
lihao lihao3 小时前
软硬链接
linux·运维·服务器
TOWE technology3 小时前
智能安防监控系统如何做好防雷?——视频信号SPD综合应用方案解析
运维·服务器·防雷产品·信号保护·信号防雷·spd
楼田莉子3 小时前
Docker学习:Docker介绍及其架构介绍
运维·后端·学习·docker·容器·架构
大明者省4 小时前
IIS 端口绑定正常访问的原理说明与常见误区澄清
运维·服务器·笔记
晚风吹红霞5 小时前
Linux软件包管理器详解 —— yum与apt的使用及软件生态
linux·运维·服务器
曦夜日长5 小时前
Linux系统篇,进程概念(一):计算机体系、操作系统的认识、程序的加载过程
linux·运维·网络