我的想法是让人们使用诸如
/jenkins
之类的单个命令,并在其后使用将由一项任务解析并用于在下游启动其他命令的参数。这使我们只能使用一个松弛命令/一个实例,但仍然可以为我们提供所需的所有灵活性。问题在于将参数传递给Jenkins。我正在描绘类似以下工作流程的内容;
用户在Slack中输入
/Jenkins job2 param1 param2
。这正在调用伞式作业,该作业将解析参数以找出要运行的参数。 命令以某种方式发送到了伞式詹金斯的工作。 Heroku实例,直接集成,带/。
伞作业接收
job2 param1 param2
作为字符串。 (也许作为单个参数的值,可能预分割为多个字段)如果尚未完成,Umbrella作业将字符串拆分,并指出用户希望使用参数
job2
和param1
运行param2
。 伞作业会执行一个buildjob来按要求运行下游作业,这会将Slack反馈给用户。
这是第2-3步,这让我感到震惊。
如果我的前提不对,我也很乐意挑战自己的构架。
#1 楼
您发现的插件在Heroku实例与构建作业之间没有1:1的比例,因为它以作业名称作为参数,因此您应该能够从单个Heroku实例中运行任意数量的作业。 br />关于在job参数中传递空格,单词split是在空格上进行的,因此引用不会改变任何内容。您可能会尝试使用HTML空格字符%20
并查看它是否起作用?个人而言,我会尝试使用该插件直接运行具有关联参数的正确作业,而不是通过筛选作业。
评论
确切地说,空格分割是在链接上方几行进行的,我还没有进行足够的挖掘来确认是否会在所有空格上分割,但是听起来好像很烂
–滕西拜
17年5月4日在19:30
没错,它被此行分割为空格github.com/joshdholtz/jenkins-slack-command/blob/master / ...因此,参数是否带引号无关
–迈克尔·佩雷拉(Michael Pereira)
17年5月4日在19:35
是的参数被循环并再次分割=如果值包含空格,它将中断,使用%20在发布到松弛时可能有效,但是必须进行测试,因为我不知道詹金斯或松弛如何解析或保留它们
–滕西拜
17年5月4日在21:09