🛠️

Webブラウザで始めるRedmine Plugin開発

2024/02/12に公開

Redmineのプラグインを作る際には準備するものが色々あります。RubyやRedmine本体、開発するためのVScode等の環境など。
それらを用意しなくてもブラウザだけで簡単に開発を始められるツールを作りました。

Redmine Plugin Boilerplate

https://github.com/haru/redmine_plugin_boilerplate

特徴

  • RedmineのPlugin開発を簡単に始められます。
  • Github Codespacesを使って開発できるので、Webブラウザさえあれば特別な環境なしにどこでも開発を行えます。
  • Redmineのバージョン、Rubyのバージョン、データベースの種類の組み合わせを自由に変えられます。
  • 既にプラグインを開発している方も、この仕組みを組み込むことができます。

プラグインの作り方

redmine_plugin_boilerplateを使用して新規にプラグインの開発を始める方法を説明します。

プラグインリポジトリ作成

redmine_plugin_boilerplateをブラウザで開き、Use this templateCreate a new repository をクリックします。
Create repository

すると以下のようなリポジトリ情報の入力フォームが開くので、必要な情報を入力します。Repository nameはプラグインの名前を入れて下さい。ここではmyfirst_pluginとしています。
PublicかPrivateかはどちらでも良いです。

Create form

Create repository をクリックすると新しいリポジトリができます。

Created

Github Codespace作成

次に、<>CodeCode spacesタブ → Create codespace on main をクリックしてGithub Codespaceを作成します。

Create codespace

すると、以下のようにCodespaceがつくられ始めます。

Creating

Codespaceが出来上がると、以下のようにブラウザ上にVSCodeのような画面が表示されます。

Created

プラグインの作成

Terminalを開き、以下のコマンドを実行します。

.devcontainer/plugin_generator.sh 

Plugin generator

するとプラグインのソースコードが生成されます。これでプラグインの雛形は完成です。

redmineを起動する

では次にcodespace上からredmineを実行してみましょう。.devcontainer/redmine.code-workspaceを開き、ワークスペースを開くをクリックします。

Open workspace

コードスペースが一旦閉じた後、再度オープンします。すると、左側のサイドバー上のツリー下部にRedmine本体のソースコードが表示されます。

Reopen workspace

左端のサイドメニューで「実行とデバッグ」のアイコンを選択し、実行とデバッグサイドバーを表示します。
Execute

メニューで「Rails server (redmine)」を選択し、実行しましょう。

Execute menu

redmineが実行され、右下に「ブラウザーで開く」ボタンが表示されるのでクリックします。

Open with browser

すると新しいブラウザが開き、redmineが表示されます。

open redmine

後は先ほど作成したプラグインの雛形を編集し、プラグイン開発を行なってください。

RedmineとRubyのバージョンを変更する

RedmineやRubyのバージョンを変更して動作確認を行うことができます。.devcontainer/docker-compose.ymlを開き、RUBY_VERSIONREDMINE_VERSIONをそれぞれ使いたいバージョンに変更します。ここでREDMINE_VERSIONにはRedmineのGithubリポジトリ上のブランチを指定します。例えばRedmine 5.0を使う場合には5.0-stableを指定します。開発中のバージョンを指定する場合にはmasterを指定します。

docker-compose

docker-compose.ymlを編集したら、コンテナのリビルドを行ってください。

rebuild container

すると、コンテナのビルドが走った後に、指定したRuby, Redmineのバージョンでcodespaceが開きます。

Discussion