私はJenkins CIで作業しており、gitを使用するようにジョブを適切に構成しようとしています。
Gitプラグインをインストールし、自分の仕事の1つに構成しました。ジョブをビルドするとき、指定したブランチの最新の変更をプルし、ビルドプロセスの残りの部分(たとえば、単体テストなど)を続行することを期待しています。
コンソールの出力を見ると、
> git fetch --tags --progress ssh://gerrit@git-dev/Util +refs/heads/*:refs/remotes/Origin/*
> git rev-parse Origin/some_branch^{commit}
Checking out Revision <latest_SHA1> (Origin/some_branch)
> git config core.sparsecheckout
> git checkout -f <latest_SHA1>
> git rev-list <latest_SHA1>
プラグインは適切なコミットハッシュをフェッチしてチェックアウトすることがわかりますが、テストを実行すると、リポジトリがまったく更新されていないように見えます。 Jenkinsのリポジトリにアクセスすると、最新の変更が取得されなかったことがわかります。
ビルドを試みる前に引っ張ってはいけませんか?
Jenkinsマシンにgit 1.8.5をインストールしています。これは推奨バージョンです。 https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
SOで他の似たような質問をチェックした後、彼らの答えは私の問題には役に立たなかった。
Jenkinsは変更をプルし、独自のtmpディレクトリにビルドすると信じています。そのため、Jenkinsは独自のサンドボックスで新しいコードを適切に構築していますが、リポジトリディレクトリは更新されていません。
これに対する私の解決策は、ビルドプロセスに「git pull」ステップを追加することです。
新しいコミットがGitHubリポジトリに配信されると:
1。私のプロジェクトを構築する
成功した場合は、次のビルド後の手順を実行します。
1。シェルの実行:
cd /your/repo/directory/
git pull
「プル」が機能しない場合は、「git pull」コマンドを変更して、必要なことをすべて実行できます。
ワークスペースがクリーンアップされておらず、使用されているシナリオに関連しています:
他のオプションは Workspace Cleanup Plugin を使用することです
画像のチェックボックスをオンにするだけです。歓声 このタブで頭が痛くなりました
次の形式でブランチパスを挿入してください。
refs/remotes/<remoteRepoName>/<branchName>
Tracks/checks out the specified branch.
E.g. refs/remotes/Origin/master