Skip to content

Jenkinsfile

Jenkinsfile 是用于定义 Jenkins Pipeline 的文本文件,它包含了 Pipeline 的整个流程,包括节点、阶段和步骤的定义。

Jenkinsfile 可以通过多种方式创建和管理,如:通过 Jenkins Web UI、通过 SCM(源代码控制管理系统)提交、通过 Jenkinsfile Runner 等。

虽然 Jenkins Pipeline 可以通过 Jenkins Web UI 进行配置,但推荐使用 Jenkinsfile 来定义流水线,以便更好地管理和维护流水线配置。

例如某公司有运维A、运维B、运维C三个运维人员,他们都有自己的 Jenkins 账号,他们都可以通过 Jenkins Web UI 创建流水线,但是这样会导致流水线配置分散在不同的 Jenkins 账号下,不利于统一管理和维护。 如果使用 Jenkinsfile 来定义流水线,那么可以将流水线配置文件统一存放在代码仓库中,所有运维人员都可以访问和修改,这样就能更好地管理和维护流水线配置。

下面是一个使用 Jenkins Pipeline 从 Gitee 拉取代码并自动化构建并运行一个简单的 Spring Boot 项目的示例,运行后浏览器访问 http://localhost:8080 可看到如下图页面:

24092903.png

前提条件

  • Jenkins 安装:确保 Jenkins 已经安装并运行。
  • 远程仓库:准备一个包含 Spring Boot 项目的 Gitee 仓库。
  • JDK 和 Maven:确保 Jenkins 节点上已经安装 JDK 和 Maven,并在 Jenkins 中正确配置。

请注意,JDK 需下载对应操作系统处理器架构的版本,如:linux-x64、windows-x64、macos-aarch64 等。

24092902.png

24092901.png

Declarative Pipeline 示例

groovy
pipeline {
    agent any

    tools {
        maven 'maven-3.8'
    }

    environment {
        CRDENTIALS_ID = '1ebc6cb2-d121-4d28-9b25-1fd28c7d4bc7' // 凭证ID
        GIT_REPO = 'https://gitee.com/hongyoudan/my-spring-boot' // Gitee仓库地址
        GIT_BRANCH = 'main' // 需要拉取的分支
        IMAGE_NAME = 'my-declarative-pipeline' // 镜像名称
        IMAGE_TAG = 'latest' // 镜像标签
    }

    stages {
        stage('Initialize') {
            steps {
                echo "初始化..."
                sh "docker rm -f ${IMAGE_NAME}"
                sh "docker rmi -f ${IMAGE_NAME}:${IMAGE_TAG}"
            }
        }

        stage('Checkout') {
            steps {
                echo "拉取代码..."
                git branch: "${GIT_BRANCH}", url: "${GIT_REPO}", credentialsId: "${CRDENTIALS_ID}"
            }
        }

        stage('Build') {
            steps {
                echo "构建项目..."
                sh "mvn clean package -DskipTests"
            }
        }

        stage('Build Image') {
            steps {
                echo "构建镜像..."
                sh "docker build -t ${IMAGE_NAME}:${IMAGE_TAG} ."
            }
        }

        stage('Deploy') {
            steps {
                echo "部署应用..."
                sh "docker run --name ${IMAGE_NAME} -p 8080:8080 -d ${IMAGE_NAME}:${IMAGE_TAG}"
            }
        }
    }

    post {
        success {
            echo '构建成功!'
        }
        failure {
            echo '构建失败!'
        }
    }
}

Scripted Pipeline 示例

groovy
node {
    def crdentialsId = '1ebc6cb2-d121-4d28-9b25-1fd28c7d4bc7' // 凭证ID
    def gitRepo = 'https://gitee.com/hongyoudan/my-spring-boot' // Gitee仓库地址
    def gitBranch = 'main' // 需要拉取的分支
    def mvnHome = tool 'maven-3.8' // 使用配置中的 Maven 名称
    def mvn = "${mvnHome}/bin/mvn" // Maven命令路径
    def imageName = 'my-scripted-pipeline' // 镜像名称
    def imageTag = 'latest' // 镜像标签

    try {
        stage('Initialize') {
            echo "初始化..."
            sh "docker rm -f ${imageName}"
            sh "docker rmi -f ${imageName}:${imageTag}"
        }

        stage('Checkout') {
            echo "拉取代码..."
            git branch: gitBranch, url: gitRepo, credentialsId: crdentialsId
        }

        stage('Build') {
            echo "构建项目..."
            sh "${mvn} clean package -DskipTests"
        }

        stage('Build Image') {
            echo "构建镜像..."
            sh "docker build -t ${imageName}:${imageTag} ."
        }

        stage('Deploy') {
            echo "部署应用..."
            sh "docker run --name ${imageName} -p 8080:8080 -d ${imageName}:${imageTag}"
        }

    } catch (Exception e) {
        echo "构建过程中发生错误:${e.message}"
        currentBuild.result = 'FAILURE' // 设置构建状态为失败
    } finally {
        if (currentBuild.result == 'FAILURE') {
            echo "构建失败!"
        } else {
            echo "构建成功!"
        }
    }
}

使用流水线语法片段生成器

Jenkins 的片段生成器(Snippet Generator)是一个非常方便的工具,可以帮助用户生成构建任务的脚本片段,尤其是在使用 Pipeline 脚本时。通过它,你可以选择某些构建步骤或插件,然后 Jenkins 会自动生成对应的 Groovy 代码片段,供你在 Jenkinsfile 或者 Pipeline 中使用。

你可以通过以下步骤使用 Jenkins 的片段生成器:

  • 进入 Jenkins 控制台:打开你的 Jenkins 控制台,通过 URL 访问你的 Jenkins 实例,例如:http://<ip>
  • 进入片段生成器:点击 "New Item" 创建一个新的项目,选择 "Pipeline" 类型的项目。 然后点击项目的 "配置 (Configure)",在 Pipeline 部分的 Pipeline Script 区域下方找到 "Pipeline Syntax" 链接,点击该链接,这就是片段生成器页面。
  • 选择步骤:在片段生成器页面,选择你想生成的构建步骤,例如“Git 拉取代码”、“Shell 执行脚本”等等。
  • 配置参数:根据所选步骤配置相关参数,如 Git URL、Shell 脚本内容等。
  • 生成片段:配置完成后,点击 "Generate Pipeline Script" 按钮。Jenkins 会为你生成相应的 Groovy 脚本片段。
  • 使用生成的片段:你可以将生成的片段复制粘贴到 Jenkinsfile 中,或者直接在 Pipeline 配置里使用。

24100501.png

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