Drush makeでサイトを効果的に管理する方法は?


回答:


29

Drush and Drupalコンテキストでの「ファイルの作成」は、サイトを構成する一連のモジュール、テーマ、およびライブラリを定義します。sites / all / modulesディレクトリ全体をgitに貼り付けることもできますが、gitと開発者の両方にとって、makeファイルの処理ははるかに高速です。以下は、私の実際のプロジェクトのmakeファイルです。ファイル全体が数百行であるため、多くの部分を削除しましたが、使用したすべての機能を表示するのに十分なだけ保持しました。

; API
api = 2

; Core
core = 7.x
projects[drupal][version] = 7.14

; Contrib modules
projects[date][version] = 2.0-alpha4
projects[email][version] = 1.0

; Media and file_entity go hand in hand - please make sure they work together.
projects[media][version] = 2.0-unstable5
projects[file_entity][version] = 2.0-unstable5

; Cron modules
projects[ultimate_cron][version] = 1.6
projects[background_process][version] = 1.12

; Performance modules
projects[expire][version] = 1.0-alpha2
projects[cache_actions][version] = 2.0-alpha3

; Unstable modules
projects[menu_node_views][type] = module
projects[menu_node_views][download][type] = git
projects[menu_node_views][download][url] = http://git.drupal.org/project/menu_node_views.git
projects[menu_node_views][download][revision] = f46dd41eb8c4e693a6642a6c461afa57d99a6f1b

projects[filefield_sources_plupload][type] = module
projects[filefield_sources_plupload][download][type] = git
projects[filefield_sources_plupload][download][url] = http://git.drupal.org/project/filefield_sources_plupload.git
projects[filefield_sources_plupload][download][revision] = da374770b80fcbc0dab17158d38c8436ef29caca

projects[menu_token][type] = module
projects[menu_token][download][type] = git
projects[menu_token][download][url] = http://git.drupal.org/project/menu_token.git
projects[menu_token][download][revision] = 8c18fbb

; Libraries
libraries[mediaelement][download][type] = "file"
libraries[mediaelement][download][url] = "https://github.com/johndyer/mediaelement/zipball/2.7.0"

; Patches

; #1491150: node_load in menu_node_menu_link_insert is not safe - http://drupal.org/node/1491150
projects[menu_node][patch][] = http://drupal.org/files/menu_node-node_load-in-menu_node_menu_link_insert-1491150-1.patch

; Fix rendering of relation endpoints
projects[relation][patch][] = http://drupal.org/files/relation_table_endpoints_break.patch
projects[relation][patch][] = http://drupal.org/files/relation_bundle_permissions.patch

libraries[jquery-json-min][download][type] = "file"
libraries[jquery-json-min][download][url] = "http://jquery-json.googlecode.com/files/jquery.json-2.3.min.js"
libraries[jquery-json-min][download][sha1] = "2a4615b93c65dd50f92117c570121035a0327fee"
libraries[jquery-json-min][destination] = "libraries/jquery-json"

api行は、ファイルの残りに使用するDrush make APIを定義します。ファイルについて注意すべき重要な点は、すべてのモジュールが特定のバージョンを持っているか、特定のgitコミットを指していることです。私たちは、決して私たちのファイルに-devバージョンを持っていません。クライアントミーティングに参加するとき、またはメイクファイルをJenkinsサーバーに引き渡すとき、決して驚きはありませ。ファイルに含まれている正確なバージョンをテストし、すべてのタイプのテストに合格することが期待されます。これは、高品質の何かを配信できるようにするために重要です。

私の会社では、すべてのチームが、リポジトリのルートに「build」というシェルスクリプトを提供し、サイトのセットアップを担当することで、同じクロスチームが自動テストを実行できるようにすることで合意しています。 CIセットアップ。

モジュールの更新は、テストのためにサイトで直接直接行うことができますが、公式にはメイクファイルを更新し、サイトを再構築します。

私のチームは現在、このビルドスクリプトセットを使用しています。私は、機能の大部分を、プロビジョンを頻繁に使用する拡張機能拡張に移行することに取り組んでいます。AegirのCLIバージョン。


1
天才。これを書くのに時間を割いてくれてありがとう、それは非常に便利です
クライブ

はい、私は非常に有用な投稿として賛成するCliveに同意します。同じモジュールとパッチのセットを繰り返しインストールする必要がないことに興味があります。@Letharionいつかあなたがそれをどのように進めるかについて詳しく説明できたら、心から歓迎します。ローカルまたはリモートサーバーにインストールしますか?
アルトゥール

1
Drush Makeで遊んでいます。そこに固定バージョン番号を入れる理由を完全に理解しています。ただし、それらをどのように更新しますか?ブラシアップに相当するブラシメイクはありますか?ある時点で、バージョンを最新バージョンに更新する必要があります(特にセキュリティ更新)。数十のモジュールを使用して手動でそれを行わなければならないのはかなり退屈に思われます
...-Berdir

1
Moarの質問:.gitignoreファイルはありますか、または「maked」ファイルのコミットをどのように回避しますか?はいの場合、それはどのように見えますか?ワイルドカードを使って派手なことをしようとしました!ただし、ディレクトリでは機能しません。
ベルディール

1
私は本当に同意しません。-devの欠如は一貫性を保証するものであり、その逆ではありません。パッチを適用することは各開発者の責任です。つまり、安定したリリースではなくgitリビジョンを参照することを意味しますが、ビルド時に変更される可能性のある予測できない-devを参照することはありません。
レサリオン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.