dagger

Automation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud

CI/CDCircleCIの代替GitHub Actionsの代替Apache-2.0
15,579 スター855 フォーク
AIによる要約
ひとことで言うと

Daggerは、ソフトウェアのビルド・テスト・デプロイを自動化するプラットフォームです。コンテナ技術を基盤とし、ローカル環境でもCI環境でもクラウドでも同じパイプラインを再現可能な形で実行でき、8言語のSDKでプログラマブルに制御できます。

こんな方におすすめ

・企業:CI/CDパイプラインの標準化と再現性の確保により、チーム間のデリバリー品質を統一でき、OpenTelemetry対応のトレーシングで本番環境のデバッグ効率も向上します。 ・スタートアップ:ローカルとCIで同一のパイプラインが動作するため、少人数でも信頼性の高いデリバリー基盤を素早く構築でき、ベンダーロックインも回避できます。 ・個人事業主・フリーランス:シェルスクリプトやYAMLの煩雑さから解放され、Go・Python・TypeScriptなど使い慣れた言語でCI/CDを記述でき、ローカルで即座にテスト可能です。

有料サービスとの違い

CircleCIやGitHub Actionsなどの有料CIサービスは、クラウド上で実行される独自のYAML設定に依存しており、ローカルでの再現テストが困難です。Daggerはオープンソースで無料利用可能であり、パイプラインをプログラミング言語で記述するため型安全性やエディタ補完が得られます。さらに、特定のCIプロバイダーに依存せずどこでも動作するポータビリティが最大の差別化ポイントです。

Dagger:ソフトウェアをより良く届ける方法

Daggerは、ソフトウェアデリバリーを自動化するプラットフォームです。あらゆるコードベースのビルド、テスト、デプロイを信頼性高く、大規模に実行できます。

Daggerはローカル環境、CIサーバー、またはクラウド上で直接実行できます。

brew install dagger/tap/dagger

なぜDaggerなのか?

Daggerはソフトウェアデリバリーをプログラマブルローカルファースト再現可能オブザーバブルにします。

プログラマブル。シェルスクリプトやプロプライエタリなYAMLは、もはやソフトウェアデリバリーの自動化に適していません。Daggerは、完全な実行エンジンとシステムAPI、8言語対応のSDK、インタラクティブなREPL、豊富な再利用可能モジュールのエコシステムなどを提供します。

ローカルファースト。Daggerでタスクを自動化すれば、サポートされているあらゆるシステムで確実に動作します:ノートPC、AIサンドボックス、CIサーバー、専用クラウドインフラのいずれでも。唯一の依存関係はDockerのようなコンテナランタイムだけです。

再現可能。ツールはコンテナ内で実行され、サンドボックス化された関数によってオーケストレーションされます。ホストの依存関係は明示的で厳密に型付けされています。中間成果物はジャストインタイムでビルドされます。すべての操作はデフォルトで差分実行され、高度なキャッシュ制御が可能です。テストレポート、ビルド、デプロイのいずれであっても、Daggerは信頼できる出力を提供します。

オブザーバブル。すべての操作は完全なOpenTelemetryトレースを出力し、詳細なログとメトリクスで強化されています。トレースはターミナル上で直接、またはWebビューで可視化できます。テキストログの壁から推測する代わりに、複雑なワークフローを即座にデバッグできます。

機能

システムAPI。コンテナ、ファイルシステム、シークレット、Gitリポジトリ、ネットワークトンネルなどをオーケストレーションするためのクロス言語API。すべての操作は型付けされ、合成可能です。

8言語対応SDK。Go、Python、TypeScript、PHP、Java、.NET、Elixir、Rust向けのネイティブSDK。各SDKはAPIスキーマから生成されるため、完全な型安全性とエディタサポートを備えたイディオマティックなコードが得られます。

型付きアーティファクト。カプセル化された状態と関数を持つカスタムオブジェクト型を定義できます。型はコンテンツアドレスで管理され、SDKの言語境界やモジュール境界を越えてシリアライゼーションなしで受け渡しできます。

差分実行。すべての操作は入力によってキー付けされます。1つのファイルを変更すれば、影響を受ける操作のみが再実行されます。キャッシュはコンテンツアドレスで管理され、ローカル実行とCI間で自動的に機能します。

どこでも実行可能。唯一の要件はLinuxコンテナランタイムです。Linux上でネイティブに動作し、macOSやWindowsではDocker Desktopなどの製品を介して動作します。ローカルとCIの動作は同一です。

組み込みトレーシング。すべての操作はOpenTelemetryスパンを出力します。CLIにはライブTUIが含まれており、トレースはJaeger、Honeycomb、またはその他のOTel互換バックエンドにもエクスポートできます。

はじめに

コミュニティ

コントリビュート

CONTRIBUTING.mdを参照してください。