web-dev-qa-db-ja.com

継続的インテグレーション(iOSおよびAndroidプロジェクトを使用)

私は私の会社にいくつかの肯定的な変更を加えようとしており、その変更の1つは継続的インテグレーションの実装です。モバイル開発(iOS/Android)を行っているので、両方のタイプのプロジェクトをサポートするCIが必要です。ご存知のように、CIについてはあまり詳しくありませんが、少しググってみましたが、JenkinsとHudsonの2つが最も人気があると思います。

2つの質問があります。

  1. ジェンキンスについてのあなたの考えは?
  2. CIがプロジェクトがコンパイルされているかどうかを確認する方法はありますか
    コーディング標準(疎結合など)?
10
paxx

まず、サーバーの別のオプションとして TeamCity を確認することをお勧めします。

私の見解では(Jenkinsの経験はTeamCityの経験より少し少ないですが)どちらも優れた非常に有能なツールです-どちらかを使用している環境では満足しています。

わかりました、問題の本質に到達するために、すなわち.

CIがプロジェクトがコーディング標準に準拠してコンパイルされているかどうか(疎結合など)を確認する方法はありますか?

最も基本的なレベルでは、CIサーバーが行うすべてのことは、スクリプトを実行し、そのスクリプトの実行結果を解釈して提示することです。そのため、スクリプトを作成できる場合、CIサーバーはおそらくスクリプトを実行でき、出力を適切にフォーマットできる場合CIサーバーはおそらく結果を解釈して報告できます。

もちろん、主要なビルドサーバーはすでに多くの一般的なツールと通信/統合することができます。つまり、実際に問題になるのは、コーディング標準をチェックするためにどのツールを使用しているかですそれ選択したCIサーバーと統合します。

はい、CIサーバーは、スクリプトを無意識に実行するだけでなく、自動化の面でゲームに多くの機能をもたらします。しかし、結局のところ、それがまさにその仕事です。


明確にするために-ビルドサーバーはスクリプトを実行するだけではなく、プロセスの自動化(特に(D)VCSとの統合)が付加価値をもたらすことを知っていますが、「ビルドサーバー」の質問の答えは「サーバーとスクリプト」であり、他のすべてはそこから流れます。

9
Murph

私はTeamCityの推奨事項を2番目に挙げています。これは素晴らしい製品です。 Androidそこには席がないため、会話できませんが、2つの記事( 1 - 2 )。

最もトリッキーな部分は、適切なキーチェーンを使用してMacに自動ビルドを実行させることなどに関係していたため、エミュレーターのみのオプションではなく、iDeviceにデプロイできる署名付きアプリを作成できます。

5
Wyatt Barnett

IOSアプリを開発するJenkinsを使用する前に、会社のビルドサーバーとスクリプトを設定しました。多くの人が言ったように、CIサーバーはかなりシンプルであり、Jenkinsは無料/オープンソースであり、カバレッジレポートの公開やgithubの統合などの多くのプラグインを備えているため、私は好きです。

2
Timothy Chen