私は、Maven リポジトリへの公開が許可されている唯一の Jenkins と、バージョンにタグを付けて新しいスナップショット バージョンに移動する gradle-release プラグインを使用しています。新しいスナップショット バージョンがコミットされた後にプッシュが行われるため、タグ付きバージョンがビルドされていないことに気付きました。そのため、Jenkins は新しいスナップショット バージョンをビルドし、タグ付きバージョンをスキップします。タグ付けされたバージョンの後に最初にプッシュを行い、次に新しいスナップショット バージョンに対して別のプッシュを行うように gradle-release プラグインを構成する方法はありますか?
1 に答える
プラグインのソース コードを調べ、ローカルにインストールして動作を確認しました。createReleaseTag
タスクとcommitNewVersion
タスクは実際には別々のプッシュを実行することがわかります。また、コミットを確認したところ、タイムスタンプが異なることがわかりました。私たちの GitLab は Jenkins Webhook に対して 2 つの呼び出しを実行した可能性がありますが、2 つのコミットの間の短い時間は重要ではなく、Jenkins が によってトリガーされた変更の変更をプルするまでに、 によってcreateReleaseTag
作成された新しいコミットcommitNewVersion
はすでにプルされていると思います。平行。
私が今考えている解決策は、ブランチとタグ用に個別の Jenkins ジョブを作成するか、 と の間に時間遅延を導入することcreateReleaseTag
ですcommitNewVersion
。
2017 年 1 月 12 日更新
私はhttps://wiki.jenkins-ci.org/display/JENKINS/Release+Pluginを使用することに決めました。Jenkins のジョブはマスター ブランチと開発ブランチの両方からプルされました。Jenkins リリース プラグインは、リリース バージョンと次のスナップショット バージョンを入力して送信し、ff を実行できるリリース ページを追加しました。
- マスターをチェックアウト
- デフォルトのジョブを実行します (テストを実行する必要があります)
- リリース タスクの実行
- 新しいタグ付きバージョンをチェック
- パブリッシュ タスクの実行