今週、Explainer.js の CI パイプラインを作成しました。ここ数週間でさまざまなスクリプトを設定したので、非常に簡単でした。
CI パイプラインを設定するには、まず .github/workflows ディレクトリに YML ファイルを追加します。 GitHub のデフォルト バージョンの Node.js CI テンプレートを使用しましたが、いくつか変更がありました。まず、デフォルトのオプションを使用して PR の草案を作成しました。それから私は枝を引っ張り、いくつかの調整を加えました。名前を変更し、ビルド ジョブを 3 つの別々のジョブに分割しました。ビルドしてノードをインストールし、次に lint とフォーマットを実行して、最後にテストを実行してテストを実行します。また、needs キーワードを使用して次のジョブをスキップしたので、前のジョブが失敗した場合は次のジョブもスキップされます。したがって、ノードのセットアップが失敗すると、lint-and-format は実行されず、lint-and-format が失敗すると、テストは実行されません。私のindex.test.jsが適切に設定されていなかったため、これが数回発生しました。そのため、実行するにはargv経由でtest-api-keyを渡すことで小さな修正を行う必要がありました。 .toml と .env がすでに設定されているため、ローカルでは正常に実行されました。ローカルでコミットしようとするときにスクリプトを実行すると、ファイルが自動的にフォーマットされるため、lint-and-format のセットアップは非常に簡単でした。プロジェクトのニーズに応じて、デフォルトの YML ファイルに変更を加えました。そしてそれはかなりうまくいきます!ぜひチェックしてみてください。
私は DocBot に取り組みました。プロジェクトは JS ですが、このプロジェクトは jest と互換性のある vitest と呼ばれる別のテスト フレームワークを使用します。ただの冗談と比べて、どれだけ速いかすぐに気づきました。そして端子出力は非常に洗練されています。問題に取り組むのがとても楽しくなります。 file.test.js テストスイートを OS に依存しないようにすることに取り組みました。 WSL ターミナルで実行しましたが、正常に実行されましたが、cmd.exe では実行できませんでした。予想されるパス構造が異なることにすぐに気づきました。先週、explainer.js でテストを書き終えたときに、あることに気づきました。私はデフォルトで WSL を使用していますが、誰もが WSL を使用しているわけではないことを思い出したので、cmd.exe で実行しました。FilePathResolver.test.js に書いたテストでも同じ問題が発生したため、修正する必要がありました。そのため、デフォルト設定の vscode ターミナルを使用する場合、異なる OS でターミナルを実行していることを見落としがちです。そこで試行錯誤の末、修正して自己PRを作成しました。
以上がExplainer.js 用の CI パイプラインの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。