如何在仅对特定目录进行更改时创建将构建w / Codeship的脚本?

时间:2015-02-10 14:00:15

标签: git bash build continuous-integration codeship

假设我有两个目录libsrc,并且只希望Codeship构建来自src目录的提交更改。我如何制作一个Bash脚本来做到这一点?我知道将--skip-ci标志应用于提交将使Codeship不会创建该提交的构建。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

我不熟悉Codeship,但如果您是git用户,则可以执行以下操作之一:

  • 将src / lib用作 submodules ,然后每当有人提交任何这些文件夹时执行提交
  • 使用git hook查明某人是否已提交到这些目录,然后根据所需的文件夹执行提交。

例如,将此行添加到任何提交挂钩中 if [ $(git diff --name-only HEAD^..HEAD path/ ) ] 并检查这是否属实。

答案 1 :(得分:0)

您可以在测试步骤中直接使用如下命令:

if [[ $(git log -m -n 1 --name-only --pretty=format:"" | grep -e "lib" -e "src" -c) -gt 0 ]]; then run_your_tests; fi

这将显示上次提交的已更改文件,而不显示任何其他元数据,并计算这些行中libsrc的出现次数。

如果这些字符串多次出现,它将运行run_your_tests命令。否则它只会返回。

请注意,这是一个非常粗糙的版本,例如,它不是在文件名的开头查找字符串。但它应该是一个很好的起点。

如果您有任何其他问题,请通过support@codeship.com(或我们的app Messenger)联系我们! (如果我们通过应用内支持添加内容,我会更新答案。

[免责声明]我正在为Codeship工作;)