Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Deploying UI library on Travis CI
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
giginet
PRO
November 18, 2016
Programming
8.2k
1
Share
Deploying UI library on Travis CI
Deploy your UI library onto Appetize.io via Travis CI
giginet
PRO
November 18, 2016
More Decks by giginet
See All by giginet
🀄️ on swiftc
giginet
PRO
0
500
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
380
Claude Codeログ基盤の構築
giginet
PRO
7
4.3k
Inside of Swift Export
giginet
PRO
1
2.7k
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
2.7k
SwiftでMCPサーバーを作ろう!
giginet
PRO
3
440
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
1.6k
Mergeable Libraryで 高速なアプリ起動を実現しよう!
giginet
PRO
2
7.8k
5分でわかるExplicitly Built Modules
giginet
PRO
2
1.8k
Other Decks in Programming
See All in Programming
net-httpのHTTP/2対応について
naruse
0
440
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
440
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
120
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
710
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
580
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.6k
New "Type" system on PicoRuby
pocke
1
450
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
Claspは野良GASの夢をみるか
takter00
0
160
RTSPクライアントを自作してみた話
simotin13
0
450
JavaDoc 再入門
nagise
0
270
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Chasing Engaging Ingredients in Design
codingconduct
0
210
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
360
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Transcript
Deploying UI library on Travis CI @giginet
@giginet • iOS Engineer @ Cookpad • ։ൃج൫ͬͯ·͢ • झຯɿήʔϜ։ൃ
ࠓ • fastlaneͱTravis CIͰUIϥΠϒϥϦͷσϞΞϓ ϦΛࣗಈσϓϩΠ͢Δ
None
appetize.io • ϒϥβ্ͰiOSγϛϡϨʔλʔىಈͰ͖Δ ͭ
None
None
None
None
None
None
desc "Deploy demo application to Appetize.io" lane :deploy_to_appetize do base_build_dir
= File.expand_path('build') xcodebuild(project: "#{project_name}.xcodeproj", scheme: scheme_name, xcargs: "CONFIGURATION_BUILD_DIR=#{base_build_dir}", sdk: 'iphonesimulator') app_path = File.join(base_build_dir, "#{scheme_name}.app") zip_path = File.join(base_build_dir, "#{scheme_name}.app.zip") zip(path: app_path, output_path: zip_path) note = last_git_commit[:message] appetize(path: zip_path, note: note) end appetize Action
desc "Deploy demo application to Appetize.io" lane :deploy_to_appetize do base_build_dir
= File.expand_path('build') xcodebuild(project: "#{project_name}.xcodeproj", scheme: scheme_name, xcargs: "CONFIGURATION_BUILD_DIR=#{base_build_dir}", sdk: 'iphonesimulator') app_path = File.join(base_build_dir, "#{scheme_name}.app") zip_path = File.join(base_build_dir, "#{scheme_name}.app.zip") zip(path: app_path, output_path: zip_path) note = last_git_commit[:message] appetize(path: zip_path, note: note) end appetize Action
desc "Deploy demo application to Appetize.io" lane :deploy_to_appetize do base_build_dir
= File.expand_path('build') xcodebuild(project: "#{project_name}.xcodeproj", scheme: scheme_name, xcargs: "CONFIGURATION_BUILD_DIR=#{base_build_dir}", sdk: 'iphonesimulator') app_path = File.join(base_build_dir, "#{scheme_name}.app") zip_path = File.join(base_build_dir, "#{scheme_name}.app.zip") zip(path: app_path, output_path: zip_path) note = last_git_commit[:message] appetize(path: zip_path, note: note) end appetize Action
desc "Deploy demo application to Appetize.io" lane :deploy_to_appetize do build_and_upload_to_appetize(
xcodebuild: { project: 'Foobar.xcodeproj', scheme: scheme_name, sdk: 'iphonesimulator' } ) end build_and_upload_to_appetize Action
None
travis encrypt travis encrypt APPETIZE_API_TOKEN=super_secret --add env.matrix travis encrypt APPETIZE_PUBLICKEY=super_secret
--add env.matrix
env: global: - LC_CTYPE=en_US.UTF-8 - secure: yKRlKg8ya0pvWnYZ516Tq91Jv6(ry - secure: Xuh1dMd/vkDkech5sjM184te8VV(ry
matrix: include: - os: osx language: objective-c osx_image: xcode8 script: - bundle exec fastlane deploy_to_appetize
None
https://www.cocoacontrols.com
·ͱΊ • UIϥΠϒϥϦΛ࡞ͬͨΒappetize.ioʹ্͛ͯ ͓͘ͱ։ൃऀར༻ऀخ͍͠ • Travis CIͰࣗಈԽ͢Δͱָ • ྑ͍UIϥΠϒϥϦ૿͑ͯཉ͍͠
https://github.com/giginet/ CustomKeyboardTextField
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠