RubyMine
概要
ウェブサイト: https://www.jetbrains.com/ruby/
最適な用途: Ruby または Rails アプリケーション(Javascript/Typescript やその他のほとんどの Web 技術を含む可能性があります)の編集。
JetBrains 共通のセットアップと設定
JetBrains の IDE は標準化されているため、セットアップと設定情報の多くはすべての IDE に共通して適用され、JetBrains 共通のセットアップと設定 で確認できます。
RubyMine 固有の設定は、以下のセクションを参照してください。
GDK で動作する GitLab に対する Rubymine デバッガーの利用
rails-web のデバッグ
Rails Puma バインディングについての注意
デフォルトでは、GitLab が利用している Rails の puma 設定テンプレートは TCP ポートではなくソケットにバインド します。
このマージリクエスト により GDK で Rails puma を TCP ソケットにバインドする設定がサポートされ、また Workhorse が socket ではなく TCP ポートを使用するためのサポートが追加されました。さらに この JetBrains の Issue により、Run Configuration からソケットベースの Puma サーバーを起動するサポートが追加されました。
GitLab Workhorse と Puma がどのように協調動作するかの詳細については、コンポーネントに関するアーキテクチャドキュメント を参照してください。
デフォルトのソケットバインディングを使う puma を使った RubyMine の “Ruby” Run Configuration を設定する
- デバッグセッションごとに、事前に
gdk stop rails-webを実行しておいてください(デバッグ完了時にはgdk start rails-webを実行) - RubyMine で
/path/to/gdk/gitlabにある gitlab リポジトリディレクトリを開きます(gitlab を別ディレクトリにクローンして実行しても、すぐには動作しません) Run -> Edit Configurationsから、RubyMine 上で次のように Rails Run/Debug 設定を構成します:- 名前:
GitLab: rails-web - 設定:
- Server:
Puma - IP address: 空欄(
0.0.0.0を削除) - Port: 空欄(
3000を削除) - Environment:
development - Environment Variables(注: 現在の GDK
Procfileから取得した内容に加え、デバッグ中のタイムアウトを防ぐためのものを追加しています。古くなる可能性があります):RAILS_RELATIVE_URL_ROOT=/;ACTION_CABLE_IN_APP=true;ACTION_CABLE_WORKER_POOL_SIZE=4;FIPS_MODE=false;GEO_SECONDARY_PROXY=0;GITLAB_RAILS_RACK_TIMEOUT=999999;GITLAB_RAILS_WAIT_TIMEOUT=999999;GITALY_DISABLE_REQUEST_LIMITS=false;PUMA_WORKER_TIMEOUT=99999999- 注意: Procfile エントリの以下の値は不要なため省略しています:
BUNDLE_GEMFILEENABLE_BOOTSNAPRAILS_ENV
- Server:
- 名前:
- Run(“Play” ▶️ ボタン)または Debug モード(右上)で設定を起動します
rails-background-jobs のデバッグ
バックグラウンドジョブとして実行されるサービスをデバッグするには、rails-web デバッガーに加えて rails-background-jobs 用のデバッグも設定する必要があります。設定方法はほぼ同じですが、puma ではなく sidekiq プロセスに接続する点が異なります。
- デバッグセッションごとに、事前に
gdk stop rails-background-jobsを実行しておいてください(デバッグ完了時にはgdk start rails-background-jobsを実行) Run -> Edit Configurationsから、RubyMine 上で次のように Ruby(Rails ではない)Run/Debug 設定を構成します:- 名前:
GitLab: rails-background-jobs - Ruby Script:
/Users/YOUR_USER/.asdf/installs/ruby/RUBY_VERSION/bin/sidekiq - Working Directory:
/Users/YOUR_USER/PATH_TO/gitlab-development-kit/gitlab/- Environment Variables(注: 現在の GDK
Procfileから取得しています。古くなる可能性があります):SIDEKIQ_VERBOSE=false;SIDEKIQ_QUEUES=default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver;SIDEKIQ_WORKERS=1;RAILS_RELATIVE_URL_ROOT=/;GITALY_DISABLE_REQUEST_LIMITS=false - 注意: Procfile エントリの以下の値は不要なため省略しています:
BUNDLE_GEMFILEENABLE_BOOTSNAPRAILS_ENV
- Environment Variables(注: 現在の GDK
- 名前:
GDK のデータベース接続の設定
まず “GUI でデータベースにアクセスする” の手順に従って、GDK 配下の postgresql を localhost で動作するよう再設定します。
次に development データベースを設定します:
File -> New -> Data Source -> Postgresqlに移動します(または右側のDatabasesタブから)- 名前を入力:
gitlabhq_development@localhost - Host:
localhost - Port:
5432 - Authentication:
User & Password - User: 空欄のまま
- Password: デフォルトのまま、
<hidden>と表示されます - URL(上記フィールドから自動計算):
jdbc:postgresql://localhost:5432/gitlabhq_development - 必要に応じてドライバーをダウンロードします。
Test Connectionをクリックします。
その後、データベースにアクセスします:
- 右側のボーダーから
Databasesパネルを開きます - リフレッシュボタン(円形矢印)をクリックします
- 展開してテーブル/ビュー/その他を確認します
config/database.yml からさらにスキーマを追加したい場合:
Databaseタブを開きます- データベースの最上位を右クリックして
Propertiesを表示します(または「レンチ」ボタン) Schemasタブを開きます- 必要なスキーマを選択します。
その他
- EE のコードに対して “Navigate to Test”(Cmd + Shift + t)を有効にするには、
ee/specディレクトリを右クリックして “Mark Directory As…” → “Test Sources” を選択します。
bfd74782)