在流水线中使用 Jenkins 共享库

对于包含相同阶段或步骤的 Jenkins 流水线,在 Jenkinsfile 中使用 Jenkins 共享库避免流水线代码重复。

本教程演示如何在 KubeSphere DevOps 流水线中使用 Jenkins 共享库。

准备工作

在 Jenkins 仪表盘配置共享库

  1. 登录 Jenkins 仪表板并点击左侧导航栏中的系统管理

  2. 向下滚动并点击系统配置

  3. 向下滚动到 Global Pipeline Libraries,然后点击新增

  4. 配置字段如下所示。

    • Name: 为共享库设置名称(例如,demo-shared-library),以便在 Jenkinsfile 中引用此名称来导入共享库。

    • Default version: 设置共享库所在仓库的一个分支名称,将其作为导入共享库的默认分支。本教程将使用 master。

    • Retrieval method 下,选择 Modern SCM

    • Source Code Management 下,选择 Git 并为项目仓库输入示例仓库的 URL 。如果您使用自己的仓库且访问此仓库需要凭据,则需要配置凭据

  5. 当您结束编辑,请点击应用

    备注

    您还可以配置文件夹级别的共享库

在流水线中使用共享库

步骤 1: 创建流水线

  1. project-regular 帐户登录 KubeSphere web 控制台。进入 DevOps 项目并点击流水线页面上的创建

  2. 在弹出窗口中设置名称(例如,demo-shared-library),点击下一步

  3. 高级设置中,直接点击创建,使用默认设置创建流水线。

步骤 2:编辑流水线

  1. 在流水线列表中,点击流水线以转到其详细信息页面,然后点击编辑 Jenkinsfile

  2. 在显示的对话框中,输入以下示例 Jenkinsfile。完成编辑后,点击确定

    1. library identifier: '[email protected]', retriever: modernSCM([
    2. $class: 'GitSCMSource',
    3. remote: 'https://github.com/devops-ws/jenkins-shared-library',
    4. traits: [[$class: 'jenkins.plugins.git.traits.BranchDiscoveryTrait']]
    5. ])
    6. pipeline {
    7. agent any
    8. stages {
    9. stage('Demo') {
    10. steps {
    11. script {
    12. mvn.fake()
    13. }
    14. }
    15. }
    16. }
    17. }

    备注

    您可以根据需要为 agent 指定 label

  3. 或者,您可以使用以 @Library('<配置好的共享库名称>') _ 开头的 Jenkinsfile。如果使用这种类型的 Jenkinsfile,则需要提前在 Jenkins 仪表板上配置共享库。在本教程中,您可以使用以下示例 Jenkinsfile。

    1. @Library('demo-shared-library') _
    2. pipeline {
    3. agent any
    4. stages {
    5. stage('Demo') {
    6. steps {
    7. script {
    8. mvn.fake()
    9. }
    10. }
    11. }
    12. }
    13. }

    备注

    您可以使用 @Library('[[email protected]](https://kubesphere.io/cdn-cgi/l/email-protection)<分支名称>') _ 来指定特定的分支。

步骤 3:运行流水线

  1. 您可以在任务状态选项卡下查看该阶段。点击运行运行它。

  2. 在一段时间后,流水线将成功运行。

  3. 您可以点击运行记录下的成功记录,然后点击查看日志查看日志详细信息。