Skip to content

脚本式流水线(Scripted Pipeline)

脚本式流水线(Scripted Pipeline)是一种基于 Groovy 语法的流水线语法,它提供了更高自定义和动态逻辑的能力,适合复杂的构建场景。

脚本式流水线使用 Groovy 脚本来定义流水线,可以使用 Jenkins 提供的全局变量和方法来实现更灵活的流水线逻辑。

官网 - Scripted Pipeline

脚本式 Pipeline 以 node 块为基础,并通过调用 stagesteps 来组织构建过程。它的基本结构如下:

groovy
node {
    stage('Build') {
        echo 'Building...'
    }
    stage('Test') {
        echo 'Testing...'
    }
    stage('Deploy') {
        echo 'Deploying...'
    }
}

主要特点

  1. 完全的 Groovy 控制:脚本式 Pipeline 允许使用完整的 Groovy 语法,这意味着可以使用条件语句、循环、函数等编程结构来控制构建过程。

  2. 灵活的构建逻辑:脚本式 Pipeline 适合需要复杂逻辑的场景,例如动态生成阶段、条件执行等。

  3. 更大的自由度:与声明式 Pipeline 相比,脚本式 Pipeline 更加灵活,但也需要开发者更仔细地管理状态和逻辑。

示例

  1. 基本的脚本式 Pipeline
groovy
node {
    stage('Build') {
        echo 'Building the application...'
        // 可能的构建命令
        sh 'make'
    }

    stage('Test') {
        echo 'Running tests...'
        // 可能的测试命令
        sh 'make test'
    }

    stage('Deploy') {
        echo 'Deploying the application...'
        // 可能的部署命令
        sh 'make deploy'
    }
}
  1. 使用条件逻辑

可以在脚本中使用条件语句来控制不同阶段的执行。

groovy
node {
    stage('Build') {
        echo 'Building the application...'
        sh 'make'
    }

    stage('Test') {
        if (env.BRANCH_NAME == 'main') {
            echo 'Running tests on the main branch...'
            sh 'make test'
        } else {
            echo 'Skipping tests on non-main branch.'
        }
    }

    stage('Deploy') {
        echo 'Deploying the application...'
        sh 'make deploy'
    }
}
  1. 使用循环

可以在 Pipeline 中使用循环来处理多个项目或任务。

groovy
node {
    stage('Build') {
        def projects = ['project1', 'project2', 'project3']
        for (project in projects) {
            echo "Building ${project}..."
            sh "cd ${project} && make"
        }
    }
}
  1. 定义函数

可以在脚本式 Pipeline 中定义函数,以便重用代码。

groovy
node {
    stage('Build') {
        buildProject('my-app')
    }

    stage('Test') {
        runTests()
    }

    stage('Deploy') {
        deployProject()
    }
}

def buildProject(String projectName) {
    echo "Building ${projectName}..."
    sh "cd ${projectName} && make"
}

def runTests() {
    echo 'Running tests...'
    sh 'make test'
}

def deployProject() {
    echo 'Deploying the application...'
    sh 'make deploy'
}
  1. 使用环境变量

可以在脚本式 Pipeline 中使用环境变量,以便在构建过程中进行配置。

groovy
node {
    stage('Build') {
        env.APP_NAME = 'my-app'
        echo "Building ${env.APP_NAME}..."
        sh "cd ${env.APP_NAME} && make"
    }
}
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!