首页 > 解决方案 > 自由样式作业与流水线作业中的 Jenkins 流水线脚本添加

问题描述

目前我正在尝试为我的微服务部署构建 CI/CD 管道。我在不同阶段创建了声明性管道脚本,包括存储库拉取、构建、测试、Kubernetes 部署等。我正在尝试触发提交后脚本,该脚本需要为每次提交到存储库启动 Jenkins 作业。

当我尝试创建 Jenkins 作业时,我选择了 New -> Free Style 选项。但是没有可以添加管道脚本的区域。

当我选择 New -> Pipeline 时,我就有了添加管道脚本的空间。但是我没有源代码管理选项来添加我的存储库签出链接等等。

当我观察时,我只看到自由风格的源代码管理选项。但它没有任何区域可以添加我的管道脚本。

在这里,我需要添加我的声明性管道脚本,还需要参考我的 SVN 源代码管理。而且我将脚本存储在 Jenkins 本身中。我没有使用 Jenkinsfile(从 SCM 轮询选项)。我怎样才能加入詹金斯的工作?我需要添加自由样式或管道吗?

标签: jenkinssvnjenkins-pipeline

解决方案


如果您希望在每次提交时触发您的 Jenkins 作业,那么必须由 SVN 服务器触发该作业。这可以通过提交后挂钩来完成。我假设您在 Jenkins 中使用 Subversion 插件。SVN 插件文档解释了如何创建提交挂钩:https ://wiki.jenkins.io/display/JENKINS/Subversion+Plugin

与轮询相比,这种方法至少具有三个优点:

  1. 轮询每分钟只能发生一次,这意味着您将无法在每次提交时触发作业
  2. 作业忙时轮询停止,而提交钩子将继续在队列中添加作业,保证每个提交都被单独检查。这也可能是一个缺点:当作业执行时间过长并且有很多提交时,每次提交的吞吐量时间会变得非常长
  3. 每分钟轮询会在您的 SVN 服务器上引入额外的负载

推荐阅读