Swift 4.2 日本語化計画 : Swift 4.2
Swift の継続的統合
Swift プロジェクトは 段階的な開発モデル に基づいており、プロジェクトの安定性を維持するためのコアツールとして結合する前に、プルリクエストの変更を継続的に統合 (CI) のテストをすることを利用しています。システムでは swift.org に投稿されたスナップショット・ビルドが作成され、アクティブな分岐に対してテストが実行されます。リクエストをコミットする前にプルリクエストに対してテストを実行するためのレビュープロセスの一部としても使用されます。
構成
私たちの 継続的な統合システム は Jenkins によって提供されており、現在 MacOS、Ubuntu 16.04、および Ubuntu 18.04 でビルドとテストをサポートしています。iOS シミュレータでのテストもサポートしています。
現在、58 個の macOS ノードで、macOS 10.13.5 を実行中であり、Xcode 10 beta 6 でビルド中です。また、20 個の Linux ノードがあり、Ubuntu 14.04、Ubuntu 16.04、および Ubuntu 18.04 を実行しています。
ジョブの組織
継続的な統合のジョブは、CI システム 内で以下のカテゴリに組織されています。
- Development - master の分岐でビルドするように構成されたすべてのジョブ
- swift-4.2-branch - swift-4.2-branch でビルドするように構成されたすべてのジョブ
- Package - master および swift-4.2-branch 分岐用のツールチェーンを作成するジョブ
- Pull Request - master に統合する前に GitHub からのプルリクエストを確認するジョブ。
ジョブの構成
ジョブ | OS | ビルド型 |
---|---|---|
Swift、段階的 | macOS Ubuntu 14.04 Ubuntu 16.04 Ubuntu 18.04 | 段階的 |
LLDB、段階的 | macOS Ubuntu 14.0 Ubuntu 16.04 Ubuntu 18.04 | 段階的 |
Swift (Tools Opts+Assert, Stdlib DebugInfo+Assert, Test Simulator) | macOS | クリーン |
Swift (Tools Opts+Assert, Stdlib Opt+DebugInfo+Assert, Test Simulator) | macOS | クリーン |
Swift (Tools Opts+Assert, Stdlib Opt+DebugInfo, Test Simulator) | macOS | クリーン |
ビルドスクリプトコマンドは、各ジョブの説明内に記載されています。ほとんどのビルドスクリプトコマンドは、さらなるビルドとテストの設定を含むコマンドにプリセットされたビルドシステムを使用します。プリセットの文書は、ビルドスクリプトのソース に含まれています。
使用法
swift.org の CI システムと対話できる方法はいくつかあります。
- 統合ジョブのステータス - https://ci.swift.org ですべての統合ジョブのビルドとテストのステータスを表示できます。
- 電子メール通知 - ビルドやテストに失敗した変更をコミットすると、電子メールで自動的に通知されます。
- プルリクエストのテスト - プルリクエストを介して変更を加えると、変更が統合される前にテストされ、結果がプルリクエストにインラインでポストされます。
リクエストのテスト
プルリクエストで変更がレビューされると、Swift チームのメンバーが CI システムによるテストを開始します。テストは、macOS、Linux、または両方のプラットフォームで動作するように始まります。
テストステータスはプルリクエストとともにインラインでポストされ、テストが進行中であることを示します。"details (詳細)" リンクをクリックすると、進行中のテストのステータスページに直接移動できます。
テストが完了すると、その結果もプルリクエストで更新されます。
テスト中に問題が見つかった場合は、失敗の詳細へのリンクが表示されます。
開発部門にコミットする前に、変更が Swift プロジェクトの 品質基準 を満たし、変更によって見つかった問題を修正する責任をあなたが負うことを期待されます。変更が開発またはリリース分岐のビルドやテストを中断した場合は、電子メール通知を受け取ります。
コミュニティへの影響
Swift プロジェクトは、コミュニティからの提案を歓迎し、他の構成のサポートを追加します。
Swift コミュニティがホストする継続的統合
コミュニティのメンバーは、Swift コミュニティがホストする継続的統合 で追加のプラットフォームのノードをホストするボランティアとして、ホストシステムの保守を担当しています。Swift Community-Hosted CI Repository でプルリクエストを作成すると、新しいノードを開始できます。プロセスに関する詳細は、README.md に記載されています。
Swift コミュニティがホストする CI は、サポートされていないプラットフォームをケースバイケースでサポートされているプラットフォームに移行することを可能にします。提供されるノードの数に応じて、@swift-ci プルリクエストテストをコミュニティがホストする CI と統合することもできます。