3

gradle release-pluginを使用してプロジェクトを「リリース」しようとしています

プラグインは、適切にバージョン管理されたものだけがリリースされるように、作業コピーがクリーンであるかどうかをチェックすることから始めます。

これは、私のローカル マシンで問題なく動作します。しかし、ジェンキンスの仕事で同じことをしようとすると、職場でさまざまなものが変更されてビルドが失敗します。多くのものがジェンキンによって内部的に使用されているだけであると判断し、次のように追加しましたgitignore

caches/
native/
wrapper/

しかし、それはまたgradlew変更されたと見なします:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkCommitNeeded'.
> You have uncommitted files:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   M gradlew
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Jenkins がそのファイルを変更するのはなぜですか?

Jenkins ジョブの次の設定が関連する可能性があると思います。

  • Checkout/merge to local branch (optional)マスターに設定されています。この設定がないと、リリース プラグインはブランチ上にないことについて不平を言います

  • Clean after checkout現在チェックされていますが、チェック/チェックを外しても違いはありませんでした

  • Make gradlew executableがチェックされており、少なくとも私には考えられる原因のように思えますが、gradlew が実行可能でないため、チェックを外すとビルドが失敗します

4

1 に答える 1

7

かなり古い質問ですが、ここに来る人への記録として、ここではジェンキンスに問題はありません。実行可能ビットを設定してgradlewをコミットする必要があります。

# git update-index --chmod=+x gradlew
# git commit

その後、jenkins 設定を実行可能に設定する必要がなくなります。これが問題の原因となる回避策です。

于 2015-11-12T13:41:09.063 に答える