Slide 1

Slide 1 text

Deploying UI library on Travis CI @giginet

Slide 2

Slide 2 text

@giginet • iOS Engineer @ Cookpad • ։ൃج൫΍ͬͯ·͢ • झຯɿήʔϜ։ൃ

Slide 3

Slide 3 text

ࠓ೔͸ • fastlaneͱTravis CIͰUIϥΠϒϥϦͷσϞΞϓ ϦΛࣗಈσϓϩΠ͢Δ࿩

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

appetize.io • ϒϥ΢β্ͰiOSγϛϡϨʔλʔىಈͰ͖Δ΍ ͭ

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

travis encrypt travis encrypt APPETIZE_API_TOKEN=super_secret --add env.matrix travis encrypt APPETIZE_PUBLICKEY=super_secret --add env.matrix

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

https://www.cocoacontrols.com

Slide 21

Slide 21 text

·ͱΊ • UIϥΠϒϥϦΛ࡞ͬͨΒappetize.ioʹ্͛ͯ ͓͘ͱ։ൃऀ΋ར༻ऀ΋خ͍͠ • Travis CIͰࣗಈԽ͢Δͱָ • ྑ͍UIϥΠϒϥϦ૿͑ͯཉ͍͠

Slide 22

Slide 22 text

https://github.com/giginet/ CustomKeyboardTextField

Slide 23

Slide 23 text

͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠