ホームページ >バックエンド開発 >Golang >チェック: 「ドッグフード」テスト

チェック: 「ドッグフード」テスト

DDD
DDDオリジナル
2025-01-20 08:03:32495ブラウズ

Kontroler: セルフテスト ワークフロー オーケストレーション ツール

私の最新プロジェクト Kontroler は、セルフテストというユニークな工夫を施したワークフロー オーケストレーション ツールです。 ワークフローを調整するだけでなく、独自の機能を使用してその機能をテストすることもできます。これは「ドッグフーディング」として知られるプロセスです。この継続的な自己テストにより、ツールが確実に動作すると同時にツール自体が改善されることが保証されます。

セルフテストを行う理由

自動化に対する私の情熱が、効率的で信頼性の高いツールを作成したいという私の願望を駆り立てています。 Kontroler は単なるワークフロー ランナーではありません。外部テストツールを使用せずに独自の機能を証明するように設計されています。 この組み込みのストレス テストは強力な基盤を提供し、その自主的な品質管理を観察することは実用的であり、やりがいがあります。

Kontroler が自身をテストする方法

自己テストを実行するには、追加のコンポーネントを作成する必要がありました:

  • GitHub Webhook リスナー: 受信 Webhook を処理し、インフラストラクチャ ディレクトリを処理し、DAG と DAGRun を生成します。
  • Kontroler Webhook リスナー: Kontroler からの発信イベントを処理し、タスクの完了ステータスとリンクされたタスク情報を提供します。

新しい .kontrolerci ディレクトリがリポジトリに追加されました。このディレクトリには、DAG/CI パイプラインを定義する YAML ファイルが格納されます。 簡単な Go ビルダーの例:

<code>build-server:
  image: golang:1.23.5-bullseye
  script: |
    echo "Navigating to server directory"
    cd server
    go mod tidy
    echo "Building server application"
    go build -o main cmd/main.go</code>

完全なディレクトリ構造は GitHub で入手できます: https://www.php.cn/link/6968240043185f65f22097299b865f6b

何をテストしますか?

現在のパイプラインテスト:

  • パッケージのインストール (npm、Go)
  • リンティングに行きましょう
  • 単体テスト

これらのテストによりシステムの信頼性が高まり、CI パイプラインの実行が成功すると、Kontroler のタスク割り当てと Webhook 生成がエンドツーエンドで検証されます。

GitHub の UI に結果が表示されます:

Kontroler:

ドッグフーディングの報酬 (と課題)

最初に成功したパイプラインの実行は信じられないほど満足でした。緑色のチェックマークが私の期待を上回っていたのです。 たとえ私だけであっても、Kontroler は実際に使用されていました。

しかし、セルフテストには課題がなかったわけではありません。 クライアント認証の失敗や一時ファイルに関連するエラーなどの問題のデバッグには時間がかかることが判明しました。 しかし、このドッグフーディングのプロセスにより、重大な欠陥が明らかになり、対処できるようになりました。

Kontroler の将来の計画

ドッグフーディングにより、改善の余地があるいくつかの領域が特定されました。

  • ランタイム PodTemplate オーバーライド: CI パイプラインなどのワークフローの柔軟性が強化されました。
  • DagRun CRD 内での PVC 作成: リソース管理が改善されました。

私たちは、Kontroler のドッグフードを継続して、ツールをさらに改良し、製品化していきます。

以上がチェック: 「ドッグフード」テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。