概述

Jenkins 是一个自动化服务器,允许开发者自动构建、测试和部署应用程序。Jenkins 服务器执行任务,这些任务可以手动或自动触发。此外,我们还可以同时运行这些任务或按照特定顺序运行。

本文将指导您完成创建自由式任务和管道任务的过程,以触发另一个任务。

1. 任务设置

在 Jenkins 中,我们可以创建任务来运行代码覆盖率测试、集成测试和部署应用。为了执行一组任务,Jenkins 提供了不同类型的任务。根据任务的不同,我们可能需要触发内部任务。

这里我们将构建两个任务,一个父级管道任务和一个子级自由式任务。我们将在 Jenkins 用户界面中手动运行父级任务,而子级任务将由父级任务内部触发。

让我们先来看看子级任务。

1.1 创建自由式子任务

在开始之前,让我们首先构建一个示例设置。我们将使用自由式任务类型来创建子任务。自由式构建任务易于使用,并具有许多预设选项。此外,为了创建自由式任务,我们需要遵循以下步骤:

  1. 在 Jenkins 控制面板上点击 New Item
  2. 设置 “Job Name” 为 childJob
  3. 选择 “Job Type” 为 “Freestyle项目
  4. 在构建步骤的执行壳中添加 echo “childJob” 命令
  5. 保存任务

结果如下图所示:

保存任务

通过上述步骤,我们现在可以创建一个简单且能够独立运行或由其他任务触发的自由式任务。

1.2 创建管道父任务

Jenkins 管道是一系列相互关联的事件或任务,用于在我们的软件开发流程中实现持续交付 这里我们将创建一个管道任务,它将内部调用我们刚刚创建的 childJob。让我们查看管道任务的 Groovy 脚本:

pipeline {
    agent any
    stages {
        stage('build') {
            steps {
                echo "parentJob"
            }
        }
        stage('triggerChildJob') {
            steps {
                build job: "childJob", wait: true
            }
        }
    }
}

上述脚本包含管道任务中的两个阶段:buildtriggerChildJob。第一阶段仅执行 echo 命令,第二阶段将内部触发 childJob

现在,让我们使用上述 Groovy 脚本创建管道任务:

  1. 在 Jenkins 控制面板上点击 New Item
  2. 设置 “Job Name” 为 parentJob
  3. 选择 “Job Type” 为 Pipeline项目
  4. 添加上述描述的 Groovy 脚本并保存任务

结果如下图所示:

Groovy 脚本

我们现在可以从 Jenkins 管道任务中触发自由式任务。请注意,父级任务构建将在阶段中进行,如下图所示:

自由式任务

在这里,我们可以看到两个阶段 buildtriggerChildJob 都成功运行。

结论

本文展示了如何在 Jenkins 中创建一个内部触发另一个任务的任务。首先,我们创建了一个示例 Jenkins 自由式任务,然后创建了一个管道任务以内部触发它。

我们可以在 GitHub 上找到管道任务的脚本。