《Jenkins Tips 2》 —— 每期用简短的图文描述一个 Jenkins 小技巧。
问题
想要把 Linux 上不同的文本数据通过 Jenkins 发送邮件给不同的人。
思路
想通过 Shell 先对数据进行处理,然后返回到 Jenkins pipeline 里,但只能得到 Shell 返回的字符串,因此需要在 Jenkinsfile 里把字符串处理成数组,然后通过一个 for 循环对数组中的值进行处理。
以下是要处理的文本数据:
# Example |
要将以上文件通过 Jenkins 分别进行处理,得到用户 user1,user2,user3 然后发送邮件。
解决
字符串截取
通过 Shell 表达式只过滤出 user1 user2 user3
# list 所有以 fail-list 开头的文件,并赋给一个数组 l |
测试结果如下:
$ ls |
处理字符串为数组
以下在 Jenkinsfile 使用 groovy 将 Shell 返回的字符串处理成字符数组。
// Jenkinsfile |
最终完成了通过 Groovy 将 Shell 返回的字符串处理成字符数组,实现上述例子中对不同人进行邮件通知的需求。
希望以上例子对你做其他类似需求的时候有所启示和帮助。