質問

私と私のチームは、いくつかの再利用可能なスクリプトを作成し始めています。これらは、独自のアプリと特定のサーバー環境で動作する場合にのみ、組織内で再利用できます。そのため、rubyforgeやgithubなどにはあまり適していません。

私の質問は、すべてのユーザーにわたって最新かつ最高のスクリプトを使用していることを確認するためのベストプラクティスは何ですか?これらのスクリプトはほとんど1つのサーバーで実行されますが、他のサーバーに拡張する必要がある場合があります。

それらをgemにバンドルし、プライベートgemサーバーを起動する必要がありますか?

または一般的な共有可能なlibディレクトリのような単純なもの。おそらく、SCMからダウンロード/更新するスクリプトが必要ですか?

その他のアイデア?

ありがとう...

役に立ちましたか?

解決

これは、コードを変更したい人の数(チームのみ、または他の誰かも)、またはこのために持っている金額など、いくつかの要因に依存しますか?

個人的には、何らかのバージョン管理システム(gitやsvnなど、プロジェクトで作業している人数によって異なります)を使用してスクリプトをアップロードできるbuild + gemサーバーを作成し、cronジョブを作成します。一般的な間隔でソースから宝石を自動的に生成し、異なるバージョンとして保存します。このようにして、アプリケーションのgemを保存する信頼できるサーバーを常に確保し、何かが壊れた場合は常に以前のバージョンを取得できます。スクリプトによって、「appserv-edge」のような個別のgemバージョン名が作成される場合があります。または" appserv-stable"

もし余裕があるなら、githubのクローズドソースオプションもチェックしてみてください。ただし、非オープンソースプログラム用のgemの構築およびホスティング機能があるかどうかはわかりません。

他のヒント

専用のgemserverを作成しましたが、とても簡単です。唯一の注意点は、ユーザーにgemをアップロードする方法を決定することです。個人的には、PHPのアップロードフォームを使用し、既存のgemがマスクされていないことを確認するようにチェックしています。

私のオフィスでは、共有スクリプトとライブラリのいくつかに対して、少しハイブリッドなアプローチを使用しています。それらをすべてgemにバンドルしますが、gemサーバーを使用するのではなく、ソース管理にそれらを保持してから、必要に応じてgemをビルドし(newgemを使用)、ローカルにインストールします。

このアプローチの欠点は、gemをインストールするのに1つではなく2つのコマンドを使用することですが、配備にCapistranoを使用するため、これはqaおよび運用環境で大幅に軽減されます。

長所は、非常にシンプルであり、開発では、gemの変更が必要なものを扱う場合、非常に短い編集/ビルド/デプロイサイクルがあることです。現在、多くの一般的な機能を共有gemに取り入れているので、その側面に本当に感謝しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top