我们即将擦除我们的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,流行的选择似乎是使用斜杠命令,但......我仍然有一些问题,因为这是我第一次设置这些东西:
只是寻找一些关于易于实现,可扩展性,可维护性等的指导,以及人们已经取得成功的一些示例设置.
谢谢.
所以我终于设法使用Slack的斜杠命令,字符串解析和这个答案:如何在Jenkins中设置环境变量?
我使用的Jenkins插件:
我配置了我的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').
一旦它到达另一边,我需要将这个'text'参数拆分为Jenkins可用于构建过程的多个环境变量.为此,我添加了两个pre-scm构建步骤.
Pre-scm build步骤1是一个'Execute shell'命令,它由以下脚本组成:
build_parameters=($text)
echo BRANCH=${build_parameters[0]} > props
echo PARAM2=${build_parameters[1]} >> props
Run Code Online (Sandbox Code Playgroud)
'props'是我用来存储已解析字符串的文件,因为尝试使用'export'在此步骤中设置环境变量失败,因为当构建实际启动时env变量不会持久存在.此脚本将$ text参数存储在字符串数组中(按空格字符拆分),我只是引用数组的每个索引来获取所需的变量.需要一个新的工作参数?在这里添加另一行.
Pre-scm build步骤2是一个'Inject Environment Variables'作业,在'Properties File Path'中我只是指定'$ WORKSPACE/props'.然后,它使用我解析的env变量读取文件,并将它们注入作业环境.
所以是的,不必创建任何webapps来手动解析'text'参数,然后调用不同的URL,其中所有参数都在URL中单独设置.无需使用每个可能的参数组合制作一百万个不同的Jenkins作业.
希望这能节省一些时间!
| 归档时间: |
|
| 查看次数: |
7326 次 |
| 最近记录: |