我想设置一个CI,这样只有在GitHub webhooks报告git提交时它才会做出反应和构建,包含对我的repo子文件夹中任何内容的更改。
myRepo
> code1.js
> workers <-- run when this ... or anything under this changes
> worker1.js
例如,我想设置一个CircleCI构建,它可以查看提交并运行脚本,根据与搜索{{1}的正则表达式匹配的commit-changelog来确定构建的go? or no-go?
。在changelog有效负载中。
我只是不知道在哪里挂钩以及如何:
workers
文件夹的内容?这样我的CI就会保持愚蠢,因为webhook会决定何时将commit-payload推送到CI。workers
文件夹的内容?如果是这样的话?我可以编写自己的正则表达式,但我需要知道在哪里注入/挂钩脚本。
我不要求的事情:
答案 0 :(得分:4)
CircleCI不支持内置此功能。在CircleCI方面,您确实可以在circle.yml
中使用某些逻辑检查workers
目录中的更改,但是我们只会在构建过程开始后对其进行评估。效率不高。
至于GitHub webhooks,我不知道可以做到这样的事情。如果是这样,那真是太棒了,请告诉我。
我的建议
CircleCI支持提交消息中的[skip ci] or [ci skip]
标志。如果workers
目录之外的更改很少发生,只需将该标志添加到提交消息中即可。如果经常发生变化,那将会很乏味,所以我会使用Git commit-msg
钩子。您可以为该挂钩编写一个小脚本来检查哪些目录包含更改。如果workers/*
内的任何内容未更改,请使用[skip ci]
附加(或预先添加)提交消息。这里的Git文档非常简单,但这里是钩子页面:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks。
我希望有所帮助。
-Ricardo
开发者传播者,CircleCI