6

私は、マスタープロジェクトとincludeFlatディレクティブを使用した2つのその他のプロジェクトからなるGradleプロジェクトを持っています。これら3つのプロジェクトのそれぞれは、GitHubに関する独自のレポを持っています。それを構築するには、3つすべてのプロジェクトを共通のトップフォルダにチェックアウトし、次にcdをマスタプロジェクトに入れてgradle buildを実行します。それは素晴らしい作品です!AWS CodePipelineを使用してJenkinsで複数のGradleプロジェクトを構築

私はAWS EB(Elastic Beanstalk)に結果のアプリケーションを展開する必要があります。これは、アーティファクトをローカルで生成してから手動で展開するときにもうまくいきます。私はプロセスを自動化したいので、this documentで説明されているように、CodePipeline + Jenkinsを使ってGradleを調整してみようとしています。

パイプに3つのソースを指定すると、私のプロジェクトが互いに重なり合って抽出され、ジェンキンスのワークスペースに混乱が生じてしまうという問題があります。私は何とか各プロジェクトをJenkinsのワークスペース内の独自のディレクトリに出力するように設定する必要があります。少なくともUIで行う方法はありません。(少なくともUIでは)

もちろん、私はどうかしてgradle buildを実行するためにマスターディレクトリにcdを必要とし、やり直す方法がわかりません。

PS @Philの素晴らしい提案は残念ですが、CodePipeline does not currently support Gitサブモジュールまたはサブツリー

+0

gitサブモジュールのようなものを使用できませんか? https://git-scm.com/docs/gitsubmodules – Phil

+0

私はフラットなプロジェクト構造を持つ方がはるかに好きですが、興味深いアイデア – Bostone

+0

しかし、あなたはすでに各プロジェクトごとに別々のレポを持っていませんか?サブモジュールとしてそれらをすべて自分のディレクトリに組み込んだ別の親プロジェクトを作成してビルドに使用することができます – Phil

答えて

0

3 reposのいずれかで変更が発生したときに共通ビルドを開始します。変更が1つ以上のリポジトリに導入されたとしても、5分遅れで、単一のビルドを持つようにします。

eb deployを使用する以外の方法で展開に対処する方法がわかりません...古い方法...あなたのjenkinsマシンにawsツールをインストールしてください。ビルドに成功した場合にトリガーされたデプロイメントジョブを作成そこに展開しているbashスクリプトを入れてください。デプロイメントスクリプトの詳細については、デプロイスクリプトを参考にしてください。

+0

で私が言及しているものとほぼ同じです.JenkinsはすでにEC2で動作しています。あなたはこれでどこに行くのか分かりません。 3つのGitHubプロジェクト、1つのマスター、2つのサブプロジェクト(includeFlat)、私は私の問題を明確に述べたと思います。私はあなたが提案しているものは、私がメインポストへの私のコメントで説明したものだと思います。プロジェクトにトリガをかけ、初期コードを無視し、グラデルスクリプト(あなたのケースではbash)からscmを実行します。この時点では残念なことに私にとっては問題にはならない – Bostone

+0

あなたのjenkinsでは、 'eb'ユーティリティを使ってawsツールをインストールします。あなたのアーティファクトを展開するジョブを作成します。または、他の方法で - あなたが手動でやっていることをジンキスでやってください。おそらくスクリプトではなく、awsコンソールではなく、それはちょうど別のツールです。 –

関連する問題