openpreflight icon

openpreflight

openpreflightは、管理下のインフラで動くGoバイナリとSQLiteを採用した、GitHubリポジトリ向けセルフホスト型CIサービスです。install・test・buildを実行し、GitHub Check Runsで結果を報告します。

openpreflight

GitHubの重点的なチェック向けセルフホスト型CI

openpreflightは、GitHubリポジトリ向けのセルフホスト型継続的インテグレーションサービスです。管理下のインフラ上でGoバイナリとして動作し、GitHub Appを通じてGitHub webhookを受信し、設定したコミットに対するネイティブなCheck Runsを公開します。

install・test・buildコマンドに基づく、分かりやすいプルリクエストまたはブランチゲートを必要とするリポジトリ向けに設計されています。設定は.ci.ymlまたはリポジトリバインディングに記述でき、実行にはホストプロセスまたは明示的に選択したDockerランタイムを使用します。マトリクス、アーティファクト、並列ステージなど、より広範なパイプラインオーケストレーションは意図的に含まれていません。

機能

単一プロセスのCIサービス

Web UI、JSON API、webhookレシーバー、ジョブランナーを1つのGoバイナリに統合し、別個のメッセージブローカーやフロントエンドのデプロイを必要としません。

ネイティブGitHub Check Runs

GitHub Appを作成または登録し、リポジトリをバインドして、Web UIからブランチとオプションのパスパターンを有効にできます。インストールトークンはジョブごとに発行されます。

シンプルなコマンドパイプライン

ルートの.ci.ymlファイルでinstall・test・buildコマンドを定義するか、リポジトリバインディングごとに上書きできます。空でないランタイムイメージを指定すると、docker run --rmでステップを実行します。

コミット単位の実行

ワーカーは正確なコミットを取得し、detached checkoutを使用して、実行前にリモート認証情報を削除し、実行タイムアウトを適用します。

実行ステータスとログ

標準出力はGitHub Check Runに送信され、完全なログはプロダクトの詳細ページで確認できます。実行はpassed、failed、skipped、error、cancelledの状態に対応し、インターフェースには再実行の操作が表示されます。

SQLiteベースのストレージ

状態は1つのSQLiteファイルに保存され、シークレット用のカラムは保存時にAES-256-GCMで暗号化されます。実行履歴とログは保持期間に従って削除されます。

ユースケース

  • プライベートリポジトリのゲート

    プライベートリポジトリをGitHub Appにバインドし、テストとビルドのコマンドを定義して、生成されたCheck Runを必須のブランチ保護チェックとして使用します。

  • 小規模なセルフホスト型チーム

    チームがすでに運用しているVPSなどのホスト上で、別個のCIプラットフォームスタックをデプロイする代わりに、1つのプロセスとSQLiteファイルを使って重点的なCIを実行します。

  • オープンソースのコントリビューションチェック

    ワーカーホストとリポジトリバインディングを管理下に置きながら、分かりやすいリポジトリコマンドに対する自動チェックをコントリビューターに提供します。

  • 混在するリポジトリ規約

    .ci.ymlにリポジトリ固有のコマンドを保持し、異なるブランチ、パス、コマンド、タイムアウトが必要なリポジトリにはバインディングレベルの上書きを使用します。

Pros and Cons

Pros

  • ネイティブなGitHub Check Runsを単一のブランチ保護ゲートとして使用できます。
  • 主要なサービスコンポーネントを1つのGoバイナリに含めるため、デプロイするサービスの数を減らせます。
  • GitHub Actionsのワークフロー定型記述を使わず、小さな.ci.ymlファイルにリポジトリのコマンドを記述できます。
  • ワーカーが正確なコミットのチェックアウト、認証情報のクリーンアップ、タイムアウト、暗号化されたシークレットストレージ、保持ログを処理します。

Cons

  • パイプラインモデルは意図的に限定されています。マトリクス、並列ステージ、条件付きステップ、キャッシュ、ステップ間のアーティファクトは提供しません。
  • 実行と永続化は、ホスト、SQLiteの状態、webhookエンドポイント、オプションのDockerエンジンなど、運用するインフラを中心に行われます。
  • サイトでは料金情報を公開しておらず、現在、料金URLは見つからないページを返します。

FAQ

openpreflightはどのようにインストールしますか?

Docker ComposeでGoバイナリをインストールするかリリースバイナリを実行し、Web UIを開いて初回起動ウィザードを完了し、GitHub Appを登録してリポジトリバインディングを有効にします。Docker Composeの例はプロダクトサイトに掲載されています。

GitHubイベントからCheck Runまで、実行はどのように進みますか?

GitHub Appが設定済みのホストでcheck-suite webhookを受信し、HMACを検証して配信をキューに追加します。ワーカーはCheck Runを作成し、正確なコミットを取得して設定済みのコマンドを実行し、結果をGitHubに報告します。完全なログは詳細ページで引き続き確認できます。

パイプラインでは何を実行できますか?

パイプラインでは、install・test・buildのシェルコマンド、オプションのランタイムコンテナイメージ、タイムアウトを設定できます。設定は.ci.yml、バインディングの上書き、またはpackage.jsonから推測される限定的なNodeのデフォルト値から取得できます。

openpreflightが適さないのはどのような場合ですか?

いいえ。文書化されている対象範囲には、ステージまたはneeds、ファンアウトと並列ステップ、条件付きステップ、実行間のキャッシュ、ステップ間のアーティファクト、ビルドマトリクス、install・test・build以外のステップは含まれません。これらの機能やマルチプラットフォームのランナーが必要な場合は、GitHub Actionsの方が適しています。

複数のリポジトリで1つのGitHub Appを使用できますか?

1つのワーカーは1つのジョブに対して1つのCheck Runを生成し、ブランチ保護で選択できます。1つのGitHub Appで複数のリポジトリをカバーできますが、各リポジトリで個別にバインディングを有効にする必要があります。

Quick Facts

カテゴリー
開発者向けツール / セルフホスト型CI
主要プラットフォーム
GitHubリポジトリとCheck Runs
デプロイ
Docker Composeまたは管理下のインフラ上のリリースバイナリ
コアランタイム
SQLiteの状態を備えたGoバイナリ
パイプラインモデル
install・test・buildコマンド、オプションのDockerランタイム
ソースドメイン
openpreflight.xyz

openpreflightの代替品

ByteAsk icon

ByteAsk

ByteAskは、C/C++向けのターミナル起点AIコーディングエージェント。リポジトリを編集し、コンパイラやデバッガ、サニタイザ、テストで変更を検証してから差分を表示。無料枠あり。

Manta AI icon

Manta AI

Manta AIは、URLからアプリの挙動を把握し、回帰を検出し、スクリプトやセレクタ管理なしでテストを生成できる自律型Webアプリテストツールです。

EAS Observe icon

EAS Observe

EAS Observeは、ExpoとReact Nativeアプリ向けの本番パフォーマンス監視ツールです。Expoダッシュボードで起動メトリクス、セッションのタイムライン、リリースマーカー、エラーを確認できます。

CreateOS Sandbox icon

CreateOS Sandbox

CreateOS Sandboxは、FirecrackerマイクロVM上でコードやエージェントのワークロードを実行できる分離型コンピュート環境です。SDK、CLI、MCPで制御可能。

hob icon

hob

hobは、エージェントのセッション、ターミナル、履歴、後続作業を、既存のツールやプロバイダーに合わせて整理できる独立したコーディングエージェント向けワークスペース。ローカルでの制御を重視する開発者に最適。

Ably Chat icon

Ably Chat

Ably Chatは、カスタムのリアルタイムチャットアプリを構築できるチャットAPIプラットフォームです。ルーム単位のメッセージ、入力中表示、プレゼンス、リアクション、メッセージ更新に対応し、利用量ベースの料金も選べます。