使用Slack启动Jenkins构建
我们将擦除Mac
Mini并从头开始重新安装新的XCode和Jenkins。我们最近才开始使用Slack,我们希望使用它来接收Jenkins构建通知并启动Jenkins构建。
因此,Slack通知没有问题。一切正常。
当我尝试使用Slack开始构建时,出现了我的问题。
本教程(http://sonnguyen.ws/how-to-trigger-a-jenkins-build-from-
slack/)介绍了一种使用Slack斜杠命令的方法。但是,我们的Mac
Mini在我们的内部网络上。到目前为止,我们一直在使用Skype通过此sevabot与Jenkins进行自动构建。
使用Slack时,最受欢迎的选择似乎是使用斜杠命令,但是....我仍然有一些疑问,因为这是我第一次设置此东西:
- 我们是否应该使用斜杠命令方法并采用某种如下所述的领导者/跟随者方法:http : //i-phone-dev.blogspot.de/2013/07/jenkin-build-xcode-project-in-mac- slave.html
- 是否有使用Slack传出Webhooks或Slackbot功能的更sevabot风格的方法?
只是在寻找一些易于实施,可扩展性,可维护性等方面的指导,以及一些人们成功使用过的示例设置。
谢谢。
回答:
所以我终于设法使用Slack的斜杠命令,字符串解析和以下答案来做到这一点:如何在Jenkins中设置环境变量?
我使用的Jenkins插件:
- scm之前的版本
- EnvInject插件
- 构建授权令牌根插件
我将Slack斜杠命令配置为调用https:// my-jenkins-server // buildByToken /
buildWithParameters?job = JOB_NAME&token = MY_SECRET_TOKEN。因此,当我键入’/
build_my_app branch_name
project_param2’时,我在斜杠命令之后键入的文本将作为URL参数(在本例中为’branch_name project_param2’)发送过来。
一旦到达另一端,我需要将此“文本”参数拆分为Jenkins可用于构建过程的多个环境变量。为此,我添加了两个pre-scm构建步骤。
scm之前的构建步骤1是“执行外壳”命令,该命令由以下脚本组成:
build_parameters=($text)echo BRANCH=${build_parameters[0]} > props
echo PARAM2=${build_parameters[1]} >> props
我使用“ props”文件来存储已解析的字符串,因为在此步骤中尝试使用“导出”设置环境变量失败了,因为在实际开始构建时env变量不会持续存在。该脚本将$
text参数存储在一个字符串数组(由空格分隔)中,我只引用该数组的每个索引即可获取所需的变量。需要新的工作参数吗?只需在此处添加另一行。
scm之前的构建步骤2是“注入环境变量”作业,在“属性文件路径”中,我只需指定“ $ WORKSPACE /
props”。然后,它将读取带有我解析的env变量的文件,并将它们注入作业环境中。
是的,无需创建任何Web应用程序即可手动解析“文本”参数,然后使用在URL中单独设置的所有参数调用另一个URL。不必使用每种可能的参数组合制作一百万个不同的Jenkins工作。
希望这可以节省一些时间!
以上是 使用Slack启动Jenkins构建 的全部内容, 来源链接: utcz.com/qa/416116.html