タグ

Jenkinsとiosに関するjustoneplanetのブックマーク (9)

  • Jenkinsを使ったiOSアプリビルド自動化9 トリガとセキュリティ – なんてこったい

    流れ的に説明を省略してしまった箇所がいくつかあるので、ここでまとめて触れておきます。 Jenkinsのセキュリティ設定 Jenkinsはブラウザ経由で操作します。標準の状態では、ブラウザでそのマシンにアクセスできる人であれば、誰でも自由に設定を変更したりビルドを実行できてしまいます。実際にJenkinsの運用を始める前にセキュリティの設定を変更しておきましょう。 Jenkinsの管理 – システムの設定から「セキュリティを有効化」にチェックを入れると、アクセス制限をかける事ができるようになります。ユーザについてはJenkins上で作成・管理することもできますが、Macの場合は「Unixユーザ/グループ データベース」を選択すればそのMac上のユーザデーターベースを使えて便利です。 権限管理の欄でユーザごとの権限を設定できます。気をつけなければいけないのはデフォルトの権限設定で、どうやらJe

  • Jenkinsを使ったiOSアプリビルド自動化8 テストの実行と集計 – なんてこったい

    Test After Buildの仕組みを利用して、実際にテストを実行してみましょう。 テスト用ターゲット Xcodeビルドの設定で、テスト用のターゲットを設定します。 iOSの標準のテスト(SenTestingKit)はシミュレータ上でしか走らせる事ができないので、SDKには明示的にiphonesimulatorを指定します。iphonesimulator5.1のようにバージョンを指定することもできます。これを指定しないとデバイス用のSDKが使われる事になるので、エラーが発生します。 この状態で一度ジョブを実行してみましょう。コンソール出力を確認して、テスト実行のログが残っているか確認しましょう。 Test Suite '/Users/foo/.jenkins/jobs/bar/workspace/build/Debug-iphonesimulator/bar.octest(Tests)

  • Jenkinsを使ったiOSアプリビルド自動化7 ビルドとテストの基礎 – なんてこったい

    Jenkinsを使ってビルドを自動化することができました。この後、ビルドしたアプリをTestFlight経由でいつでも簡単にインストールできるようにしていきたいのですが、手順の都合から先にテストの自動化について確認しておきましょう。 継続的なテスト SQLiteのテストコードは実に9000万行を超えているそうです。バグを早期に発見しつぶすためにテストは重要ですが、一方で開発が進むにつれて増大していくテストコードを、プログラマがコードをコミットする前に毎回全部実行するのは、時間がかかり非効率的です。 そこで、プログラマは自分のコミットに影響があると思われる部分(この見積もりは大事だけれど)のみコミット前にテストを実行し、後はコミットした後でJenkinsにテストさせていくようにして、バグの早期発見とスピードのバランスをとっていきましょう。 Xcode Pluginを使って実行できるテストの制

  • Jenkinsを使ったiOSアプリビルド自動化5 Xcodeとの連携の基礎 – なんてこったい

    まずは難しい事を考えずに、一度JenkinsからXcodeを使ってプロジェクトをビルドしてみましょう。Jenkinsを使ってiOSアプリをビルドするには、最初にいくつか設定をする必要があります。 必要なもの 最新のXcode 最新版のXcodeが必要です。ちなみに、JenkinsはXcode.appではなくxcodebuildコマンドを使ってiOSアプリケーションをビルドします。xcodebuildはXcodeをインストールすると使えるようになるコマンドです。 プロビジョニング類 実機用のビルドを行うには、通常の実機用ビルド同様、ビルドに使うProvisioningファイル類(秘密鍵・証明書・プロビジョニングファイル)が必要です。シミュレータでテストを行うだけであればこれらはなくても大丈夫です。 プラグイン シェルスクリプトでビルド用のコマンドを書いてもよいのですが、プラグインを使うと設定

  • Jenkinsを使ったiOSアプリビルド自動化3 – なんてこったい

    手始めに、Jenkinsを使ってプロジェクトの最新のソースコードをGitレポジトリから取得してきてみましょう。Jenkinsは標準でCVSやSVNに対応していますが、残念ながらGitに対応していません。Gitを使うには別途プラグインをインストールする必要があります。 Gitプラグインのインストール JenkinsのプラグインはWeb UI上でインストールできます。 Web UI(localhost:8080)の左上のメニューから「Jenkinsの管理」を開きます。 「プラグインの管理」を選びます。 プラグイン管理画面が開いたら、「利用可能」タブを選択します。しばらく待つと、利用可能なプラグインの一覧が表示されます。待っても表示されない場合はリロードしてみるとうまくいったりします。 「Git Plugin」というプラグインにチェックを入れて、「再起動せずにインストール」します。 以上でGit

  • Jenkinsを使ったiOSアプリビルド自動化2 – なんてこったい

    Cronでビルド用のスクリプトを定期的に実行するだけでも、完全自動のCIを実現できますが、CIツールを使うとより簡単に実現できます。今回はiOSアプリ開発(とくにUnityを使ったゲーム開発)で最近よく使われているJenkinsというCIツールを試してみます。まずはインストール。 Jenkinsを使うとなにがよいのか 「レポジトリから最新のソースコードを一式取得してきて、テストする。また、ビルドしてTestFlightにアップロードする」一連の流れをゼロからスクリプトで記述するのはかなり面倒です。エラーハンドリングを含めると、コードはどんどん長くなり導入コストが大きくなってしまいます。 JenkinsをはじめとするCIツールでは、これらの各処理をパラメータを指定するだけで実行できるようになっており、自動ビルドの導入コストが大幅に圧縮されます。また、スクリプトだけでは実現が難しい過去の履歴の

  • Jenkinsを使ったiOSアプリビルド自動化1 CI導入のメリットと課題 – なんてこったい

    エクストリーム・プログラミングのプラクティスの一つに、継続的インテグレーション(CI)があります。iOSアプリ開発のフローにもCIを取り入れてみましょう。ここではJenkinsというツールを使って具体的にiOSアプリのビルド・テストの自動化を試みながら、iOSアプリ開発にCIを取り入れる上でのメリットや課題について見ていきます。 バグの早期発見 実際にチームでプロジェクトを開発していると、バグは勿論、ビルドできないコードがコミットされてしまうことがあります。継続的にビルド・テストをしていると問題があるコードがコミットされた時にすぐに気がつきます。 ノンエンジニアへのビルドの共有 TestFlight等と組み合わせると、開発環境を持っていないノンエンジニアの人がいつでも開発中のアプリの最新版を自分の端末上にインストールできるようになります。これはエンジニア・ノンエンジニア両方にとってストレス

  • Jenkins を iOS アプリ開発に導入してみた (GHUnit編)

    前回 はSenTestKitを用いてJenkins上で単体テストの自動実行を行いました。今回はGHUnitを使った単体テストの自動実行にチャレンジしてみたいと思います。またついでといっては何ですが、単体テスト時に必要になってくるモックを作成するためのライブラリOCMockも同時に導入してみようと思います。 ■なぜGHUnitを使うのか GHUnitを使うことで、SenTestingKitと比べて以下のようなメリットが得られます。 非同期処理のテストを行うための仕組みが用意されている(GHAsyncTestCase)これをSenTestingKitないし他のテスティングフレームワークでやろうとすると大変骨が折れます。 .app形式(要するに実際のiOSアプリケーション)でテストを実行するため、UIApplicationやUIWindowといったUIコンポーネントを使うクラスのテストが可能にな

    Jenkins を iOS アプリ開発に導入してみた (GHUnit編)
  • Jenkins を iOS アプリ開発に導入してみた (SenTestKit編)

    最近、iOSアプリの開発でも継続的インテグレーション(CI)を取り入れていくプロジェクトが増加傾向にあるようで、各種ツールやライブラリ、ノウハウが出回ってきているように感じられます。そこで私も早速iOSアプリ開発でのCI導入を試してみることにしました。今回の導入試験では、以下のような環境を想定して行いました。 iOSアプリの開発を、Xcode 4.X系のプロジェクトとして行う。 VCSにはgitを採用し、githubの公開リポジトリをリポジトリサーバーとして使用する。 CIサーバにはMacを採用し、プロジェクトをビルドするためにXcode 4.Xをインストールしておく。 ■必要なツールを準備する CIといったら、まずは何はなくともJenkinsです。 http://jenkins-ci.org/ ここでは導入について詳しくは挙げませんが、私は以下のを参考にしました。 https://gi

    Jenkins を iOS アプリ開発に導入してみた (SenTestKit編)
  • 1