实习日志(第六周2)

本文详细介绍了 Jenkins 的几个常用插件,包括 Subversion Plugin 的后提交钩子功能,Kerberos SSO 插件的用户认证机制,CloudBees Folders Plugin 对项目组织的管理,Promoted Builds 插件如何区分优质构建,以及 Dingding Notification 和 Dingding Json Pusher 插件在构建通知和复杂消息推送中的应用。
摘要由CSDN通过智能技术生成

jenkins常用插件补充

1. Subversion Plugin
  1. Jenkins可以拉取Subversion存储库进行更改,这只能发生在每分钟一次,所以您可能还需要等待一整分钟才能发现更改。为了减少这种延迟,可以设置一个后提交钩子,以便Subversion存储库可以在对该存储库进行更改时通知Jenkins。 为此,请将以下脚本放在您的后提交文件($ REPOSITORY / hooks目录)中:
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
  # 请注意rev = $ REV参数,这告诉Jenkins准确检查挂钩报告的修订版本。 如果您的工作有多个Subversion模块位置定义,这可能导致检出不一致 - 所以建议在这种情况下不要使用'?rev = $ REV'。
  ```
  如果您的Jenkins使用“防止跨站点请求伪造攻击”安全选项,则上述请求将被拒绝403错误(“未包含有效碎屑”)。 该请求中需要的碎屑可以从URL http:// server / crumbIssuer / api / xml(或/ api / json)获取。 这可以包含在上面的wget调用中,如下所示:
  ```
  --header `wget -q --output-document - \
  'http://server/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'`
  ```
  由于wget默认情况下重试次数不超过给定超时时间为20次,所以在慢速SVN服务器上的--timeout = 2可能会导致Jenkins扫描存储库多次,进一步减缓SVN服务器一段时间后,使詹金斯没有反应。
  此问题的可能解决方案是增加超时时间,使用参数-retries = 3添加更低的最大重试次数,或者通过添加2>&1&last而使wget调用异步(从而忽略任何通信错误) wget调用。超时太低可能导致您的提交挂起并抛出502错误,如果您在代理后面,或提交后错误,如果没有。 增加超时,直到不再看到wget重试。
  ```
  #!/bin/sh
  REPOS="$1"
  REV="$2"

  # No environment is passed to svn hook scripts; set paths to external tools explicitly:
  WGET=/usr/bin/wget
  SVNLOOK=/usr/bin/svnlook

  # If your server requires authentication, it is recommended that you set up a .netrc file to store your username and password
  # Better yet, since Jenkins v. 1.426, use the generated API Token in place of the password
  # See https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients
  # Since no environment is passed to hook scripts, you need to set $HOME (where your .netrc lives)
  # By convention, this should be the home dir of whichever user is running the svn process (i.e. apache)
  HOME=/var/www/

  UUID=`$SVNLOOK uuid $REPOS`
  NOTIFY_URL="subversion/${UUID}/notifyCommit?rev=${REV}"
  CRUMB_ISSUER_URL='crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'

  function notifyCI {
    # URL to Hudson/Jenkins server application (with protocol, hostname, port and deployment descriptor if needed)
    CISE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值