zoukankan      html  css  js  c++  java
  • 使用TortoiseSVN的客户端钩子脚本触发Jenkins构建

    我们项目在开发过程中使用了Jenkins构建Windows版本,为了通过自动触发使构建的版本保持最新,可以采用的方法如下:

    • Jenkins Poll SCM:设置Jenkins定时检查变更,在SVN版本号有变更的情况下执行构建;
    • Jenkins Remote Trigger + SVN Post Commit Hook:配置SVN仓库的Post Commit Hook,在提交完成后触发Jenkins远程构建;

    显然,第二种方法更可取一些。但是在公司内配置SVN Server Hooks需要申请权限和访问规则。

    幸好,我们使用的TortoiseSVN支持客户端钩子脚本(Hook Scripts)。

    客户端钩子脚本的类型和参数

    TortoiseSVN的客户端钩子脚本支持以下几种类型:

    tortoisesvn-hook-script-types

    我们需要的是Post-commit类型的脚本。在脚本执行的时候,TortoiseSVN会传递的参数信息如下:

    tortoisesvn-post-commit-hook-params

    这些参数的意义如下:

    tortoisesvn-post-commit-hook-param-meanings

    其中,PATH指向的文件包含了本次提交影响到的所有文件的路径,ERROR指向的文件包含了本次提交的错误信息。这两个参数是我们需要关心的。

    Post-commit脚本

    我们使用的脚本如下:

    HOOKS/POST_COMMIT_HOOK.BAT

    Python脚本的封装,内容如下:

    HOOKS/POST_COMMIT_HOOK.PY

    实际的钩子脚本,内容如下:

    钩子脚本的主要工作如下:

    1. 判断本次提交是否出错,如果有错误,说明提交未成功,退出脚本;
    2. 遍历本次提交影响到的所有文件,如果包括源代码文件(‘.h’, ‘.cpp’, ‘.cc’, ‘.c’),或者项目配置文件(‘.vcxproj’, ‘.vcxproj.filters’),则说明需要触发构建,否则退出脚本;
    3. 调用jenkins_job_url触发构建。

    JENKINS JOB URL

    钩子脚本中jenkins_job_url的定义如下:

    其中的变量含义分别如下:

    USER/USER_API_TOKEN

    Jenkins用户名和对应的API TOKEN。

    jenkins-user-api-token

    JENKINS_URL

    Jenkins的访问路径。

    JOB_NAME

    项目名称。

    TOKEN_NAME

    在项目的远程构建中设置的身份验证,需要启用触发远程构建的选项。

    jenkins-job-token-name

    设置钩子脚本

    打开TortoiseSVN设置界面,选择钩子脚本:

    tortoisesvn-hook-script

    点击增加,打开设置钩子脚本界面:

    tortoisesvn-hook-script-setup

    进行以下设置:

    • 设置钩子类型为提交之后;
    • 设置工作副本路径为trunk目录;
    • 设置执行的命令行为post_commit_hook.bat;
    • 选中运行时隐藏脚本和总是执行这些脚本选项,不要选中等待脚本运行结束选项。

    验证构建

    在提交版本后,检查Jenkins中是否触发了构建。如果成功触发了构建,控制台输出应该如下:

    jenkins-console-log

    参考

  • 相关阅读:
    qt中qmake的详解
    教程:从零开始 使用Python进行深度学习!
    win10系统下搭建Python开发环境和TensorFlow深度学习环境(CPU版)
    怎么选择视觉光源颜色
    pycharm安装及设置中文
    新建DataSet和DataTable,并从中提取数据到文本
    网站服务基础面试
    TCP、UDP数据包大小的限制
    TCP的三次握手与四次挥手理解及面试题(很全面)
    zabbix服务深入
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/10382350.html
Copyright © 2011-2022 走看看