gpt4 book ai didi

svn - 如何在代码 checkin 后立即触发 Jenkins 中的构建

转载 作者:行者123 更新时间:2023-12-04 00:52:27 25 4
gpt4 key购买 nike

提交代码后如何在 Jenkins 中触发构建?

  • Jenkins 已安装,并且可以手动触发构建。
  • 以下是 SVN 版本详细信息。
  • TortoiseSVN 1.8.1,版本 24570 - 32 位,2013/07/22 18:28:29
  • 颠覆 1.8.1,-发布
  • 4 月 1.4.8
  • apr-util 1.5.2
  • 农奴 1.3.0
  • OpenSSL 1.0.1e 2013 年 2 月 11 日
  • zlib 1.2.8
  • Jenkins URL: "localhost:8080/job/TestProject/"
  • 最佳答案

    要在代码提交后立即触发构建,您需要通知 Jenkins。

    但是,您可以配置您的工作以定期轮询您的 SCM(在我的商店,我们每 5 分钟轮询我们的 Mercurial 存储库)以获取新更改并在有新更改时进行构建。

    为此,在 构建触发器 部分,您查看 轮询单片机 复选框,并在 textarea 中填写一个 cron 表达式。每 5 分钟轮询一次,我们使用

    H/5 * * * *

    请注意,我们曾经使用
    */5 * * * *

    但更换左侧 *H允许 Jenkins 避免同时对所有项目进行轮询(然后每 5 分钟轮询一次,但不一定在 0、5、10 等分钟。

    还可以通过检查 远程触发构建。远程触发构建 并在文本框中指定一个标记。然后从脚本到相关 URL 的简单联系将触发构建。
    JENKINS_URL/job/JOB_NAME/build?token=TOKEN_NAME

    (此选项可能需要设置某些特定权限或某些特定全局配置,因为它似乎不适用于 OP。)

    关于 post-commit hook 的解决方案,见 Jenkins' Subversion Plugin documentation ,重要的部分如下:

    Jenkins can poll Subversion repositories for changes, and while this is reasonably efficient, this can only happen up to every once a minute, so you may still have to wait a full minute before Jenkins detects a change.

    To reduce this delay, you can set up a post commit hook so the Subversion repository can notify Jenkins whenever a change is made to that repository. To do this, put the following script in your post-commit file (in the $REPOSITORY/hooks directory):

    REPOS="$1"
    REV="$2"
    UUID=`svnlook uuid $REPOS`
    /usr/bin/wget \
    --header "Content-Type:text/plain;charset=UTF-8" \
    --post-data "`svnlook changed --revision $REV $REPOS`" \
    --output-document "-" \
    --timeout=2 \
    http://server/subversion/${UUID}/notifyCommit?rev=$REV


    (确实建议阅读完整文档以获取与配置相关的信息或更强大的脚本。)

    关于svn - 如何在代码 checkin 后立即触发 Jenkins 中的构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057320/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com