概要
Discourse 向けの堅牢な拡張機能を構築する際、プラグインまたはテーマコンポーネントに継続的インテグレーション (CI) を組み込むと賢明です。これにより、エラーを早期に検出し、コードにバグが発生する可能性を低減できます。
GitHub Actions を使用してビルドとテストを自動化するための CI ワークフローを設定することは、Discourse チームがすべてのコンポーネントで採用しているアプローチであり、あなたにも同じことをお勧めします。
セットアップ
GitHub Actions による自動化ワークフローを追加して検出を行うには、リポジトリのルートディレクトリに .github/workflows フォルダを作成する必要があります。
workflows フォルダ内では、GitHub Actions が実行する必要がある一連の自動化処理を定義できます。例えば、リンティングやテスト用の .yml ファイルなどが挙げられます。
プラグイン と テーマコンポーネント 両方に対応するテンプレートワークフローを作成しました。これらは、こちら にある当社の「再利用可能なワークフロー」定義に接続されています。
テンプレートのスケルトンリポジトリでは、GitHub 上で Use this template ボタンをクリックすることで、テンプレートに基づいたプラグイン/テーマコンポーネントのリポジトリを作成できます。
または、すでにプロジェクトが存在し、そこにワークフローを追加したい場合は、関連するワークフローをリポジトリの .github/workflows/ フォルダにコピーするだけです。
プラグイン: discourse-plugin.yml
テーマおよびテーマコンポーネント: discourse-theme.yml
これらのテンプレートは、再利用可能なワークフローの特定のメジャーバージョンにロックされています。ワークフローに行った小さな改善は、あなたのテーマ/プラグインに自動的に反映されます。破壊的な変更(例:新しいリンターを導入する場合)がある場合、再利用可能なワークフローのメジャーバージョンを上げ、ワークフローを新しいバージョンを指すように更新する必要があります。
完成です!セットアップはこれで完了です。リポジトリにコミットまたは PR を作成するだけで、GitHub Actions がワークフローを自動検出し、ジョブの実行を開始します。
GitHub Actions は各テストの内訳を表示し、実行後、テストが成功したか失敗したかに応じて
または
を表示します。
テストが失敗した場合、詳細をクリックすると何が失敗したかに関する情報が得られ、コードの問題点や修正すべき点の手がかりが得られるかもしれません。
独自のテストを追加する
プラグインやコンポーネントのテストを効果的に機能させるためには、プラグインまたはテーマコンポーネントに対してテストを書くことが重要です。
EmberJS を使用したフロントエンドテストの書き方に関する詳細は、以下のリンクを参照してください:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Rails を使用した RSpec テストの書き方に関する詳細は、以下のリンクを参照してください:
例
皆さんのために、堅牢なテストが統合されているプラグインやテーマコンポーネントの例をいくつか選んでみました:
| プラグイン / コンポーネント | クライアントサイドテスト | サーバーサイドテスト |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
このドキュメントはバージョン管理されています。変更を提案するには GitHub をご利用ください。
