在理想的世界中,我们的技术知识程度较低的员工只需使用Slack命令来运行作业,并将结果轻松地反馈给他们,而无需使用Jenkins GUI。我发现在GitHub上使用Slack Command在Jenkins中开始构建,但是它有一些局限性,包括似乎要求Heroku实例与Jenkins作业的比例为1:1,这对我们的目的而言并不理想。
我的想法是让人们使用诸如的单数命令/jenkins
,并在其后使用将由一项作业解析并用于在下游启动其他作业的参数。这使我们只能使用一个松弛命令/一个实例,但仍然为我们提供了所需的所有灵活性。
问题在于将参数传递给詹金斯。我在想像下面的工作流程;
用户类型
/Jenkins job2 param1 param2
为Slack。这正在调用一个伞形作业,它将解析参数以找出要运行的参数。命令以某种方式发送到了伞式詹金斯的工作。Heroku实例,直接集成,带电子。
伞作业
job2 param1 param2
以字符串形式接收。(也许作为单个参数的值,也许预分割成多个字段)如果尚未完成,Umbrella作业会拆分字符串,并
job2
使用参数param1
和找出用户想要运行param2
。伞作业会执行一个buildjob来按要求运行下游作业,这会将Slack反馈给用户。
是第2-3步使我感到震惊。如何从Slack向我的Jenkins工作传递一个字符串(带空格!)?
如果我的前提不对,我也很乐意挑战自己的构架。