我对 git 有点陌生,对 bash 不太擅长。
我有一个存储库(如果重要的话,在 Bitbucket 中),它只包含两个文件夹。
我已经有一个钩子(用 bash 编写),可以触发 Jenkins 作业。
现在我想更改它,因此它将仅针对提交到其中一个文件夹的文件触发作业,而不是针对另一个文件夹。
我想使用提交文件的名称,因为它将包含文件夹名称,但我不知道该怎么做。
任何帮助都感激不尽。
The post-receive
钩子将被提供旧引用、新引用和标准输入上的分支引用。由于可以推送多个分支,因此我们将寻找我们感兴趣的分支。然后我们可以使用git diff-tree
列出正在推送到该分支上的文件。全局表达式,$deploy_dir/*
,只会列出进入部署目录的文件。
#!/bin/bash
# post-receive script
deploy_branch='master'
deploy_dir='folder2'
trigger_jenkins=0
while read -r oldref newref ref; do
if [ "${ref##*/}" == "$deploy_branch" ]; then
if [ ! -z $( git diff-tree --no-commit-id --name-only -r "$newref" $deploy_dir/* ) ]; then
trigger_jenkins=1
fi
fi
done
if [ $trigger_jenkins -eq 1 ]; then
echo trigger jenkins job
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)