SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
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から置き換えるかも?
Build an iOS app with ConcourseCI

Contenu connexe

Tendances

RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
 
Functional Programming in Scala #4-1
Functional Programming in Scala #4-1Functional Programming in Scala #4-1
Functional Programming in Scala #4-1
Yoshihiro Shimizu
 

Tendances (12)

RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
Functional Programming in Scala #4-1
Functional Programming in Scala #4-1Functional Programming in Scala #4-1
Functional Programming in Scala #4-1
 
Ansible入門 20151226
Ansible入門 20151226Ansible入門 20151226
Ansible入門 20151226
 
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
 
React introduntion
React introduntionReact introduntion
React introduntion
 
RealSenseを使ってCrazyflieを自律飛行させてみた
RealSenseを使ってCrazyflieを自律飛行させてみたRealSenseを使ってCrazyflieを自律飛行させてみた
RealSenseを使ってCrazyflieを自律飛行させてみた
 
Kinoma Element 味見の会
Kinoma Element 味見の会Kinoma Element 味見の会
Kinoma Element 味見の会
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
 
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
 
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけどKotlinこんなん出ましたけど
Kotlinこんなん出ましたけど
 
やはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っているやはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っている
 
インフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていることインフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていること
 

En vedette

DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
Terui Masashi
 

En vedette (20)

Msa読書会#3前半
Msa読書会#3前半Msa読書会#3前半
Msa読書会#3前半
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In Production
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力
 
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
 
From legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseFrom legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourse
 
SIerもはじめる わたしたちのDevOps #jjug_ccc
SIerもはじめる わたしたちのDevOps #jjug_cccSIerもはじめる わたしたちのDevOps #jjug_ccc
SIerもはじめる わたしたちのDevOps #jjug_ccc
 
Concourse and Database
Concourse and DatabaseConcourse and Database
Concourse and Database
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減
 
MTETA ITA at Lipscomb University ~ 3/14/2017
MTETA ITA at Lipscomb University ~ 3/14/2017MTETA ITA at Lipscomb University ~ 3/14/2017
MTETA ITA at Lipscomb University ~ 3/14/2017
 
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
 
Concourse.ci vs Jenkins
Concourse.ci vs JenkinsConcourse.ci vs Jenkins
Concourse.ci vs Jenkins
 
学振特別研究員になるために~2018年度申請版
学振特別研究員になるために~2018年度申請版学振特別研究員になるために~2018年度申請版
学振特別研究員になるために~2018年度申請版
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
 
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
 
Team Support in Concourse CI 2.0 #concourse_tokyo
Team Support in Concourse CI 2.0 #concourse_tokyoTeam Support in Concourse CI 2.0 #concourse_tokyo
Team Support in Concourse CI 2.0 #concourse_tokyo
 
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
 
Behind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot Tokyo
 

Similaire à Build an iOS app with ConcourseCI

福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
codeal
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
VOYAGE GROUP
 
2012 kanemotolablecture7
2012 kanemotolablecture72012 kanemotolablecture7
2012 kanemotolablecture7
ytanno
 
iphone5 発表イベント 最速まとめLT
iphone5 発表イベント 最速まとめLTiphone5 発表イベント 最速まとめLT
iphone5 発表イベント 最速まとめLT
VOYAGE GROUP
 
iphone5 発表イベント 速報まとめ
iphone5 発表イベント 速報まとめiphone5 発表イベント 速報まとめ
iphone5 発表イベント 速報まとめ
VOYAGE GROUP
 

Similaire à Build an iOS app with ConcourseCI (20)

Jenkins on-mac
Jenkins on-macJenkins on-mac
Jenkins on-mac
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
Devとopsをつなぐchat ops
Devとopsをつなぐchat opsDevとopsをつなぐchat ops
Devとopsをつなぐchat ops
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkins
 
JobScheduler Code Reading
JobScheduler Code ReadingJobScheduler Code Reading
JobScheduler Code Reading
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
 
Jsf アプリ作ったった
Jsf アプリ作ったったJsf アプリ作ったった
Jsf アプリ作ったった
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
2012 kanemotolablecture7
2012 kanemotolablecture72012 kanemotolablecture7
2012 kanemotolablecture7
 
PythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEGPythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
 
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
 
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
 
iphone5 発表イベント 最速まとめLT
iphone5 発表イベント 最速まとめLTiphone5 発表イベント 最速まとめLT
iphone5 発表イベント 最速まとめLT
 
iphone5 発表イベント 速報まとめ
iphone5 発表イベント 速報まとめiphone5 発表イベント 速報まとめ
iphone5 発表イベント 速報まとめ
 
XcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSXcodeのTargetについてのTIPS
XcodeのTargetについてのTIPS
 
Fn project爆誕
Fn project爆誕Fn project爆誕
Fn project爆誕
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 

Dernier

Dernier (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Build an iOS app with ConcourseCI