ここで私はそれをやるでしょう。
Trigger builds remotely
にJenkinsジョブを設定します。
これにより、JENKINS_URL/job/MYJOB/build?token=TOKEN_NAME
という形式のビルドトリガーURLが有効になります。自分でトークン名を指定する必要があります。
- あなたのレポにgit post-receive hookを設定して、そのトリガーを呼び出します。
フックのスクリプトは、通常.git/hooks/post-receive
です。ポスト受信フックは、プロセス全体が完了した後に実行され、他のサービスの更新やユーザーへの通知に使用できます。
ポスト受信フックは、その引数をstdinから<oldrev> <newrev> <refname>
の形式で取得します。
新しいHEADコミットからファイルリストを取得し、File2
が含まれている場合は、次の手順に進むことができます。このような何か(テストしていませんが):あなたはジェンキンスでGitのチェックアウトを設定するとき
#!/bin/bash
while read oldrev newrev refname
do
# list of changed files for a commit
filelist=$(git diff-tree --no-commit-id --name-only -r $newrev)
if [[ $filelist == *"File2"* ]]; then
# call the URL according to your build trigger config
fi
done
More details on git hooks.
異なるブランチがある場合は、扱いが簡単だと思います。次に、gitフックで作業することができます。https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks –
私は2つのブランチ、マスター、開発者を持っています....私はソースコードを設定しましたそれはdevブランチだけをプルするような管理なのですが、ファイルが変更された場合にはjenkinsビルドをセットアップしたいと思っています。私はフックを変更するためのアクセス権がないかもしれないことを恐れています....他の回避策がありますか? –
@ Philj0あなたの提案は私のVCSの解釈と矛盾します。異なる支店は長期的に異なるデータを保管するためのものではありません。 – StephenKing