Drone vs Woodpecker CI: セルフホスト型のコンテナ CI
完全にオープンソース(Apache-2.0)でコミュニティが運営するコンテナネイティブな CI が欲しいなら Woodpecker を、商用サポートとエンタープライズ機能を備えた確立されたプロジェクトが欲しく、そのライセンス条項を受け入れられるなら Drone を選びましょう。
Woodpecker CI は、Drone のライセンス変更後に Drone のコミュニティフォークとして始まり、両者は多くの DNA を共有しています。どちらも軽量でコンテナネイティブなセルフホスト型の CI システムで、各パイプラインステップがコンテナ内で実行されます。今日の実際的な違いはガバナンスとライセンス、そしてプロジェクトが別々に進化するにつれて生じる一部の機能や統合の相違です。
| Drone | Woodpecker | |
|---|---|---|
| 起源 | オリジナルプロジェクト(Harness 支援) | Drone のコミュニティフォーク |
| ライセンス | source-available の条項が適用 | Apache-2.0(完全にオープンソース) |
| ガバナンス | ベンダー主導 | コミュニティ主導 |
| パイプラインモデル | コンテナステップ(.drone.yml) | コンテナステップ(.woodpecker.yml) |
| SCM サポート | GitHub、GitLab、Gitea など | GitHub、GitLab、Gitea/Forgejo など |
| ホスティング | セルフホストのサーバー + runner | セルフホストのサーバー + agent |
それぞれが本当に優れている点
Woodpecker は、明確にオープンソースなライセンスとコミュニティによるガバナンスを望み、ベンダーのライセンスに関する懸念がないチームに優れています。Gitea/Forgejo やセルフホストのコミュニティで人気があります。Drone は、商用サポートとエンタープライズ向けの機能を備えたオリジナルでより確立されたプロジェクトを好み、そのライセンス条項が用途に許容できる場合に優れています。
設定と移行
Woodpecker は Drone をフォークしたため、パイプラインの概念(コンテナステップ、イメージとしてのプラグイン)は非常に似ており、両者間の移動は通常は摩擦が少ないですが、プロジェクトが分岐するにつれて構文やプラグインの詳細は乖離しています。どちらの方向に移行する前でも、secrets の扱い、matrix build、プラグインの互換性の違いについて最新のドキュメントを確認しましょう。
セルフホストと運用
どちらもセルフホストです。サーバーと1つ以上の agent/runner を実行し、アップグレード、スケーリング、信頼性を自分で担います。より重い CI サーバーと比べて軽量であることが魅力の一部ですが、それでもあらゆるセルフホスト型 CI に伴うパッチ適用とキャパシティの運用負担を負うことになります。
結論
特に Gitea/Forgejo の構成では、完全にオープンソースでコミュニティが運営するコンテナ CI として Woodpecker を選びましょう。商用サポートとエンタープライズ機能を備えたオリジナルのプロジェクトが欲しく、そのライセンスを受け入れられるなら Drone を選びましょう。