質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

3回答

5756閲覧

GitとJenkinsを用いてAndroidアプリのビルドをしていますが、サブモジュールのHEADを移動したらビルドに失敗するようになった。

退会済みユーザー

退会済みユーザー

総合スコア0

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1グッド

2クリップ

投稿2015/04/08 01:23

編集2015/04/08 08:11

GitとJenkinsを用いてAndroidアプリのビルドをしていますが、サブモジュールのHEADを移動し、リモートリポジトリーに変更をプッシュ後、Jenkinsにてビルドを行ったらにビルドに失敗するようになりました。gitの操作はSourceTreeを用いております。Jenkinsのコンソールの出力を見ると下記のエラーが出ています。

ERROR: Branch not suitable for integration as it does not merge cleanly

過去には出ていないエラーですので、サブモジュールのHEADを移動したのが起因していると思われますが、解決方法をご教示頂けないでしょうか。

matsumoto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

直近で同じエラーが発生しました。環境は同じくGit PluginでMerge before buildを有効にした場合です。

少なくとも自分の環境では、fast-fowardでマージできなくてマージコミットが発生する場合に、Jenkinsが使用するgitの名前とメールアドレスの設定がされていないと、「ERROR: Branch not suitable for integration as it does not merge cleanly」のエラーが発生するようでした。

同様の症状であれば、Jenkinsの$HOMEに名前とメールを設定した.gitconfigを配置するか、適当なジョブで以下を実行すれば解決するかと考えられます。

git

1$ git config --global user.name "XXX YYY" 2$ git config --global user.email xxxyyy@example.com

参考
Stack Overflow - merge before build in jenkins fails but should not

投稿2015/10/06 12:09

編集2015/10/06 12:11
koara_local

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こちら、完全ではないですが解決しました。

Merge before buildをこのエラーが出ているジョブに設定しておりました。この設定はビルド前に、他のブランチにビルドするブランチをマージする設定なんですが、そのマージで競合が発生した際に「ERROR: Branch not suitable for integration as it does not merge cleanly」のエラーが出るみたいです。競合が発生しているのはサブモジュールのHEADの移動でした。なんで競合するのかはよくわかりませんでした。

解決方法ですが、Merge before buildの設定をオフにするか、source tree等で自分でマージし競合を解決してからjenkinsでビルドすれば解決しました。

投稿2015/04/16 09:50

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Jenkins は前回のビルドに使ったソースコードの状態から git fetch と git checkout で最新のソースコードを取得しビルドします。
HEAD の移動が原因でそれがうまく機能していないんでしょうね。

Jenkins が持っている古いリポジトリの情報を捨てて最初から取ってくる形にすればうまく行くのではないでしょうか?
プロジェクトの設定画面に「古いビルドの破棄」というチェックボックスがあるのでチェックを入れてビルドしてみてください。

投稿2015/04/08 09:21

toydev

総合スコア297

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/04/08 10:00

情報ありがとうございます。 こちら、テストしてみましたが、古いビルドの破棄のチェックを入れた後に「ビルドの保存日数」、「ビルドの保存最大数」等の設定項目がでてくるのでいろいろ設定を変え再ビルド何度か試しましたが、同じエラーでビルドに失敗しました。 お手数ですが、もし、私の考慮不足な点があればご教示頂けますか。
toydev

2015/04/08 10:07

そう簡単には解決しませんでしたか…。 「ビルドの保存日数」「ビルドの保存最大数」等は特に何も設定しませんでしたね。そもそも軽く試しただけなのでそんなに古いビルド情報が今手元にあるわけもなくw 関係ありそうなのはワークスペースのクリアですかね。 それでもうまくいかなければビルドのコンソール出力に Jenkins が実行したコマンド群が出力されているはずなので、おっかけていってみてください。 git コマンドの実行が失敗しているだろうと勝手に予想していますが、実は全く違うところでコケている可能性もありますね。
退会済みユーザー

退会済みユーザー

2015/04/09 01:22

ご助言ありがとうございます。 一様コンソール載せておきました。おっしゃる通りgitプラグインでなにかの処理をやった後にエラーが出ているような感じです。git関係の処理に的を絞り調査したいと思います。 Merging Revision 「コミットID」 (origin/master) onto jenkins_build ERROR: Branch not suitable for integration as it does not merge cleanly
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問