我们将擦除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’)发送过来。
一旦到达另一端,我需要将此“文本”参数拆分为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工作。
希望这可以节省一些时间!