1

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

4

2 回答 2

0

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

  • 使用 src/lib assubmodules然后任何时候有人提交到这些文件夹中的任何一个执行提交
  • 使用 git 挂钩找出是否有人已提交到这些目录,然后根据所需的文件夹执行提交。

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

于 2015-02-10T15:33:01.613 回答
0

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

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

这将显示上次提交的更改文件,没有任何额外的元数据,并计算这些行中lib和的出现次数。src

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

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

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

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

于 2015-02-11T12:40:13.563 回答