假设我有两个目录,lib
和src
,并且只希望 Codeship 构建来自该src
目录的已提交更改。我将如何制作一个这样做的 Bash 脚本?我知道将--skip-ci
标志应用于提交将使 Codeship 不会创建该提交的构建。任何帮助是极大的赞赏!
问问题
1097 次
2 回答
0
我不熟悉 Codeship,但如果您是 git 用户,您可以执行以下操作之一:
- 使用 src/lib as
submodules
然后任何时候有人提交到这些文件夹中的任何一个执行提交 - 使用 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 回答