gitlab ci の布教 for ios

14
GitLab CI for iOS potatotips #35 2016/11/29

Upload: ikada-kaori

Post on 14-Apr-2017

1.385 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: GitLab CI の布教 for iOS

GitLab CI の布教 for iOSpotatotips #35 2016/11/29

Page 2: GitLab CI の布教 for iOS

自己紹介

Kaori Ikada @Origami inc.モバイルアプリエンジニア

基本的に ikamon みたいなアカウントで動き回っている

Page 3: GitLab CI の布教 for iOS

たぶん、この話の対象者

GitLab 使ってる人Jenkins など自分でコードや設定保管できるCI環境でいたい人コマンドで動かしときたい、ビルド設定をGUIなものに依存されたくない人

fastlane のおかげでだいぶ助かったiOS のため Mac 環境縛りがあるけど、全リポジトリのCIを統一したいチーム

Page 4: GitLab CI の布教 for iOS

ある日Jenkinsが動かなくなったMacOS Sierra になってから、 keychain がほげほげ普段からjenkins縛りから解き放たれたかったので、他の方法

を模索

Page 5: GitLab CI の布教 for iOS

そこで GitLab CI※  Build中の様子

Page 6: GitLab CI の布教 for iOS

構成チックなもの

Page 7: GitLab CI の布教 for iOS

環境

GitLab 8.14.0gitlab-ci-multi-runner 1.7MacOS SierraXcode8.1

Page 8: GitLab CI の布教 for iOS

セットアップ

1. Gitlab で CI を有効化

2. Macマシンに MultiRunner をインストール

3. Runnerの登録

Links

Enable or disable GitLab CIInstall on MacOSSetting up GitLab CI for iOS projects

Page 9: GitLab CI の布教 for iOS

ジョブの作成

リポジトリ直下に.gitlab-ci.ymlを置く

before_script: - echo "Start gitlab ci runner" - #DeploygateのAPIKeyなどはマシン上に設定 - . ~/.bashrc_runner - bundle install

ios-master: stage: archive script: - #実行コマンド - bundle exec fastlane dg only: - #ブランチを指定 - master tags: - #タグ指定で走らせるRunnerを選べる - #マシン名つけとく運用にしてみた - jenkins.local

Page 10: GitLab CI の布教 for iOS

Runnerが走るマシンの設定~/.gitlab-runner/config.tomlマシンに登録されたrunnerの設定も入ってる実際にいじった設定の紹介

 check_interval : multi-runner マシンが gitlab-ci にチェックしに行く頻度(単位:秒)

 outpu_limit : 吐くログの量が制限されている。デフォル

トで4096(4MB) pre_build_script : gitレポジトリからクローンされる前

に実行させたいスクリプトを指定できる

その他設定: advanced-configuration

Page 11: GitLab CI の布教 for iOS

Build 失敗例git clone が失敗する、時間がかかる場合

予め job の該当箇所に ローカルコピーしておく

pre_build_script で git 環境変数設定想定していた runner とは別の runner が動いていた

Shared な runner が実行されていた → Disable に個人のマシンで試しに追加した runner が走ってしまう →Tagを利用する

Sierra で動かなかった待つ。milestoneの期限通りに対応バージョンが出た

正しく設定されていても Code Signing でビルド失敗するAdHocビルド以外のBuildConfigもエラーが出てない状態

にしておく

Page 12: GitLab CI の布教 for iOS

Jenkins からの卒業?

Page 13: GitLab CI の布教 for iOS

今後やっていきたいこと

LaunchDaemon で実行させときたいこういうかっこいいのやりたい

Page 14: GitLab CI の布教 for iOS

We are hiring!多分採用されると思うから応募しようぜ

https://www.wantedly.com/companies/origami/projects