build an ios app with concourseci

23
Build an iOS app with ConcourseCI @tenten0213 Concourse CI/CD Meetup Tokyo #5 !

Upload: takehito-amanuma

Post on 21-Mar-2017

323 views

Category:

Technology


0 download

TRANSCRIPT

Build an iOS app with

ConcourseCI

@tenten0213

Concourse CI/CD Meetup Tokyo #5 !

• @tenten0213

• SIerの雑食系エンジニア

• Java, Swift, JavaScript, Ruby, Python, COBOL…

• スクラムマスター

• Jenkins職人(引退)

自己紹介

http://qiita.com/tenten0213/items/7a362a4b9d65040d93d6

なぜここに立っているのか

iOSアプリ開発やっている人?

• Java(JVM)?

• Ruby ?

• Python ?

• PHP ?

Motivation

Jenkins職人問題• GUIでの設定

• 環境設定

• パイプライン

• レポーティング

• あれ、shell書いてる…

• プラグイン選択

前どうやったっけ?

どこか設定弄ったら動かなくなったぞ?

なんでこうなってるの?

他はコード化・設定ファイル化済• Gem

• Gemfile(.lock)

• Fastlane

• Fastfile

• CocoaPods

• Podfile(.lock)

• SwiftLint

• .swiftlint.yml

→ 後はビルドパイプラインだけ

Jenkinsでも出来るけど…

https://concourse.ci/concourse-vs.html#jenkins

Concourseのアーキテクチャ

パイプラインベースのCI/CDツール Concourse CI入門 - BLOG.IK.AM https://blog.ik.am/entries/379

iOSアプリをビルドするには

macOSでworker を立てればOK

試した構成ATC

web UI & build scheduler

https://i2.wp.com/blog.docker.com/media/docker-whales-transparent.png

macOS

TSA worker registration & forwarding

Workers container runtime & cache management

/usr/local/bin/concourse

8080

2222

Concourseのインストール

Docker Composeで構築(ホント楽)

https://concourse.ci/docker-repository.html

https://www.docker.com/

Workerの設定と起動

Mac用のバイナリ(concourse_darwin_amd64)を取得 https://github.com/concourse/concourse/releases

実行パスの通った場所に配置。 Worker用の鍵を生成とauthorized_worker_keysへの追加

Workerの起動

docker-compose.ymlの修正

"failed to dial: failed to connect to TSA: dial tcp 127.0.0.1:2222: getsockopt: connection refused"

Workerを起動するとTSAとの接続エラーがでるので docker-compose.ymlを修正する。

パイプラインを登録する

platformはdarwinで

ごにょごにょ

ごにょごにょ💩

https://guides.cocoapods.org/using/troubleshooting.html#im-getting-permission-errors-while-running-pod-commands

CocoaPodsがrootで実行できないので 権限周りをごにょごにょと

env 😇

Fastlaneで実行 🚀

https://github.com/fastlane/fastlane

30回目にて🍻

残課題 (試せてない) 🤓

• レポートの出し先どうするか

• チャットへの通知

• マルチブランチビルド

出来たらJenkinsから置き換えるかも?