web-dev-qa-db-ja.com

Jenkins Gitプラグインがジョブをビルドする前に最新の変更をプルしない

私は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で他の似たような質問をチェックした後、彼らの答えは私の問題には役に立たなかった。

25
polarice

Jenkinsは変更をプルし、独自のtmpディレクトリにビルドすると信じています。そのため、Jenkinsは独自のサンドボックスで新しいコードを適切に構築していますが、リポジトリディレクトリは更新されていません。

これに対する私の解決策は、ビルドプロセスに「git pull」ステップを追加することです。

新しいコミットがGitHubリポジトリに配信されると:
1。私のプロジェクトを構築する

成功した場合は、次のビルド後の手順を実行します。
1。シェルの実行:

cd /your/repo/directory/
git pull

「プル」が機能しない場合は、「git pull」コマンドを変更して、必要なことをすべて実行できます。

7
bpgriner

ワークスペースがクリーンアップされておらず、使用されているシナリオに関連しています:

  • ソースコード管理->追加の動作->チェックアウト後にクリーンアップenter image description here

  • 他のオプションは Workspace Cleanup Plugin を使用することです

30
Abhijeet

画像のチェックボックスをオンにするだけです。歓声 このタブで頭が痛くなりました

0

私は質問が古いことを知っていますが、これを行う別の方法があります。 ビルド環境セクションで、「ビルド開始前にワークスペースを削除」を選択します

下のスクリーンショットをご覧ください。

enter image description here

これにより、毎回ワークスペースが実際に消去されるため、更新されたコードが取得されます。

0
Harish Talanki

次の形式でブランチパスを挿入してください。

refs/remotes/<remoteRepoName>/<branchName>

Tracks/checks out the specified branch.
E.g. refs/remotes/Origin/master
0