新しいXcodeサービスや新しいApple CIとJenkinsを統合する方法/プラグインはありますか?
JenkinsサーバーとOSXビルドスレーブがssh
を介して接続されている場合の主な問題は、iOSシミュレータにこれに存在しないグラフィカル環境が必要であるため、ユニットテストが機能しないであることです。構成。
Xcodeサービス(単体テストをサポート)をJenkinsと統合できることを願っています。
Apple CIを使用すれば十分ですが、この質問はXcodeサービスとJenkinsの統合を目的としています。
既存のXcode Jenkinsプラグイン の経験はありますが、まったく新しいXcodeサービスまたは新しいApple CIをサポートしていないようです。特にユニットに熱心です。 CIによるテスト(これは、古い方法のsshセッションでは適切に機能しませんでした)。
現在Jenkinsとssh
接続されたビルドスレーブで動作していない以下の問題に関する情報を教えてください。
そして、現在Jenkinsとssh
に接続されたビルドスレーブで正常に動作し、Xcodeサービス統合で動作するはずのものに関する情報:
${BUILD_NUMBER}
に設定できます。Jenkinsは、ビルド番号に従ってこの環境変数を設定します。Apple CIがビルドを実行すると、おそらく代わりにビルド番号を設定します。)Apple CI == Xcode service
であるかどうか、またはApple CIがでXcodeサービスを使用する)かどうかはわかりません。後者の場合、Xcodeサービスはインテリジェントなビルドスレーブのようなもので、Jenkinsはそれを使用してビルドとテストを行うことができますが、ビルド番号と製品はそれ自体で管理できます。Jenkinsサーバーかxcodeサーバーのどちらかを選択する必要があると思います。私はxcodeサーバーについてはあまり知りませんが、ジェンキンスとxcode 5については知っています。
異なる構成のビルド:
Xcodeプラグインでは、使用するスキームを設定できます。
自動ビルド番号の増分
XCODEBUILDNUMBERというパラメーターをjenkinsジョブに追加しました。そして、ビルドを開始するときはいつでも、xcodeプロジェクトからビルド番号をコピーし(手動でインクリメントします。Mineは080813Aのように見えます)、XCODEBUILDパラメーターに貼り付けます。これを使用して、出力ファイルなどに名前を付けます。jenkins用のプラグインがあり、ビルド番号を自動的にインクリメントできますが、統合しないか、xcodeと同期しません。
Jenkins間のビルド番号の処理/同期&Apple CI
前に言ったように、ビルド番号を同期する方法はわかりませんが、考えられる解決策を考えました。コマンドラインツール plistbuddy を使用して、jenkinsジョブのビルドステップとしてinfo.plistにビルド番号を設定できます。
単体テスト
単体テストをXcode5で正常に動作させることはできませんでしたが、jenkinsのxcodeプラグインがそれをサポートしていることを知っています。プロジェクト設定に「ビルド後のテスト」キーがないことは、それと何らかの関係があると思います。あなたがそれを働かせたら、私は知りたいです。 (私もこの作品を作ることに熱心です)
受け入れテスト
フランクはコマンドラインツールです。 Jenkinsジョブに簡単に統合できます。テストに合格しない場合、ビルドに失敗すると思います。
Apple CIのビルド製品へのアクセス
意味がよくわかりませんが、jenkinsを使用すると、ビルド製品(.ipa)をアーカイブして、後でダウンロードしてtestflightなどのサービスにアップロードできます。繰り返しますが、Xcodeサーバー(CI)についてはあまり知りません。
ビルドのバックアップ
前に述べたように、ジェンキンスはビルド製品をアーカイブできます。また、ビルド製品のディレクトリで$ {BUILD_NUMBER}変数を使用しているため、ビルドごとに異なるディレクトリがあります。このディレクトリは私のTime Machineにもバックアップされ、重要なビルドは私のWebディレクトリにコピーされます。
特定のブランチへのgit Pushでの自動ビルド
Jenkins gitプラグインを使用すると、jenkinsが指定した間隔でscmをポーリングし、変更時にビルドをトリガーできます。
電子メール通知
これにはプラグインがあると思います。 (ビルドが失敗/成功したときにメールで通知されます。実際、これは組み込みの可能性があります)
閉会中
Xcode CIは完全に独立したCIであり、jenkinsとの統合が難しい場合があります。個人的には、拡張性の理由からジェンキンスをお勧めします。 Xcodeサーバーについてはあまり知りません。
OS XビルドスレーブでXcode 5を使用してJenkinsでユニットテストを実行しています。 Xcodeプラグインを使用する代わりに、実行シェルビルドステップとして実行します。
xcodebuild test -scheme <scheme> -configuration Coverage -sdk iphonesimulator7.0 -destination OS=7.0,name="iPhone Retina (4-inch)"
私のカバレッジ構成は、Generate Test Coverage Reportsが[〜#〜] yes [〜#〜]に設定されていることを除いて、デバッグ構成とまったく同じです計測器プログラムフローは[〜#〜] yes [〜#〜]に設定されます。これにより、テストカバレッジファイルが作成されます。 Xcode 5のバグのため、すべてのテストのtearDownで__ gcov_flush();を呼び出します。このxcodebuildコマンドの出力をocunit2junitにパイプして、Jenkinsでテストレポートを取得します。