8

現在、私たちのオフィスでビルド サーバーをセットアップしています。状況ごとに異なるアプローチが必要であり、同じ目標を達成する方法は無数にあることはわかっていますが、私は Jenkins の新参者であり、サーバー構築の一般的な概念であるため、これを正しく行っているかどうか疑問に思っていました。 '。

当社は、WordPress や Magento などのさまざまなプラットフォームを使用して、さまざまなクライアント向けの Web サイトを構築することに重点を置いています。私は今、次のセットアップを持っています:

変更を Git のマスターまたはステージング ブランチにプッシュします。Jenkins はこれらのブランチをポーリングし、変更が検出されると次のことを行います。

  • Git からリポジトリをプルします (masterこの例では)
  • というブランチをチェックアウトしますbuild-master
  • このブランチをリセットしますorigin/master
  • aが見つかったnpm install場合に aを実行します。package.json
  • aが見つかったgrunt build場合に aを実行します。Gruntfile.js
  • (ここには phpunit や casperJS テストなどの他のものを入れる余地があります)
  • 変更をコミットして にプッシュバックしorigin/build-masterます。
  • a を実行しcap build-master deployて、Capistrano がリモート サーバーでの展開を処理できるようにします。

これがビルドサーバーを使用する「正しい」方法であるかどうか疑問に思っていました。いくつかの論理的な問題に遭遇しました。お気に入り:

たとえば、ベンダー ソフトウェア。たとえば、Bower を使用したさまざまな JS ライブラリ (git-ignored js/vendor-folder にある) がある場合、それらを連結して縮小された JS ファイルに醜くし、build-masterリポジトリ (Capistrano 用) に git commit することができます。しかし、PHP ライブラリ (Composer など) を使用している場合、これに対処する方法がわかりません。これらは git-ignored -folder にありますが、ライブサーバーにデプロイさphp/vendorれるように -branch に含める必要があります。build-master現在、 -folder.gitignore.buildを含むリポジトリに を追加することでこれを行っており、コミットして にプッシュする前に、既存のものをこれで上書きします。php/vendor.gitignoreorigin/build-master

および/または:

コンパイル済みファイル。一部のファイル (たとえば、SASS から生成された CSS ファイルなど) を含めたくない場合は、これらを.gitignore. しかし、繰り返しになりますが、Capistrano がデプロイするときは、コンパイルされ、連結され、縮小された CSS ファイルをリポジトリに入れたいと思います。そうしないと、プロダクション サーバーに置かれません。

「あるべき」方法で構築および展開しているかどうか、誰か教えてもらえますか? それとも、私はここでそれを完全に複雑にしすぎていますか? これについてより多くの経験を持つ人々が、ビルドプロセスで Jenkins、Grunt、Bower、Composer、Capistrano などをどのように利用しているかに非常に興味があります。

4

1 に答える 1