GitHub Actions を使用した継続的インテグレーションのセットアップ

:mag: 概要

Discourse の堅牢な拡張機能を構築するには、プラグインまたはテーマコンポーネントに継続的インテグレーション (CI) を含めることが賢明です。これにより、エラーを早期に検出し、コード内のバグの可能性を減らすことができます。

ビルドとテストを自動化するために GitHub Actions を使用して継続的インテグレーション (CI) ワークフローを設定することは、Discourse チームがすべてのコンポーネントで使用しているアプローチであり、皆様にも同じことをお勧めします。

:gear: 設定方法

GitHub Actions が検出するための自動化されたワークフローを追加するには、リポジトリのルートディレクトリに .github/workflows フォルダーを作成する必要があります。

workflows フォルダー内では、GitHub Actions が実行する必要のある一連の自動化を定義できます。たとえば、これらはリンティングやテストのための .yml ファイルになる可能性があります。

私たちは、プラグインテーマコンポーネント の両方のテンプレートワークフローを作成しましたので、これらを利用できます。これらは、こちら の「再利用可能なワークフロー」定義に接続されています。

テンプレートのスケルトンリポジトリでは、GitHub 上で Use this template ボタンをクリックして、テンプレートに基づいたプラグイン/テーマコンポーネントリポジトリを作成できます。

あるいは、すでにワークフローを追加したいプロジェクトがある場合は、関連するワークフローをリポジトリの .github/workflows/ フォルダーにコピーするだけです。

:electric_plug: プラグイン: discourse-plugin.yml

:jigsaw: テーマとテーマコンポーネント: discourse-theme.yml

:point_up: これらのテンプレートは、再利用可能なワークフローの特定のメジャーバージョンに固定されています。ワークフローに加えられた小さな改善は、テーマ/プラグインに自動的に反映されます。破壊的変更(例:新しいリンターの導入)があった場合、再利用可能なワークフローのメジャーバージョンが更新されるため、ワークフローを新しいバージョンを指すように更新する必要があります。

:tada: 完成です!セットアップは完了です!リポジトリにコミットまたは PR を作成するだけで、GitHub Actions がワークフローを自動的に検出し、ジョブの実行を開始します。

GitHub Actions は、各テストの内訳を表示し、実行後、テストが合格したか失敗したかに応じて :white_check_mark: または :x: を示します。

テストが失敗した場合、詳細をクリックすると、何が失敗したかについての情報が表示され、コードのどこに問題があり、何を修正する必要があるかについてのヒントが得られる場合があります。

例を見る

:white_check_mark: 独自のテストを追加する

プラグインとコンポーネントのテストが効果的に機能するためには、プラグインまたはテーマコンポーネントのテストを作成することが重要です。

EmberJS を使用したフロントエンドテストの記述方法の詳細については、以下を参照してください。

Rails を使用したテスト RSpec テストの記述方法の詳細については、以下を参照してください。

:bulb:

皆様の参考のために、堅牢なテストが統合されているプラグインとテーマコンポーネントのいくつかの例を厳選しました。


このドキュメントはバージョン管理されています - 変更提案は github で行ってください。

「いいね!」 15