Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
レバレッジ効果をもたらす自動化のコツ
Search
Kishikawa Katsumi
July 31, 2019
Programming
1.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レバレッジ効果をもたらす自動化のコツ
Kishikawa Katsumi
July 31, 2019
More Decks by Kishikawa Katsumi
See All by Kishikawa Katsumi
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
190
Running Swift without an OS
kishikawakatsumi
0
1.1k
浮動小数の比較について
kishikawakatsumi
0
620
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
280
愛される翻訳の秘訣
kishikawakatsumi
3
500
Private APIの呼び出し方
kishikawakatsumi
3
1k
iOSでSVG画像を扱う
kishikawakatsumi
0
270
Build your own WebP codec in Swift
kishikawakatsumi
2
2.8k
Other Decks in Programming
See All in Programming
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
180
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
250
AHC070解法紹介
eijirou
0
120
Building an Out-of-Order CPU
latte72
1
790
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2k
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
setup-vp GitLab対応の裏側
naokihaba
0
110
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
130
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
340
Webの地図
yosuke_furukawa
PRO
6
4.6k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
160
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
Featured
See All Featured
Crafting Experiences
bethany
1
340
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
GitHub's CSS Performance
jonrohan
1033
470k
Rails Girls Zürich Keynote
gr2m
96
14k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Skip the Path - Find Your Career Trail
mkilby
1
230
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Navigating Team Friction
lara
192
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
ϨόϨοδޮՌΛͨΒ͢ ࣗಈԽͷίπ
ࣗಈԽඇػೳཁ݅ • ϝϦοτ͕େ͖͍͜ͱཧղ͍ͯͯ͠༏ઌΛ্͛ͯऔΓΉ͜ͱ͕͠ ͍
ࣗಈԽϨόϨοδޮՌ͕͋Δ
ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ
ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ ͜Ε͕ϨόϨοδޮՌΛ͏Ή
ϨόϨοδޮՌΛੜΉࣗಈԽͷצͲ͜Ζ • ख࡞ۀ => ࣗಈ࣮ߦ • λεΫ͕ίϚϯυϥΠϯʹཧ͞ΕΔ • λεΫ͕ཧɾղ͞ΕΔ •
λεΫ͕ίʔυͰදݱ͞ΕΔʢʓʓ as a codeʣ • ܁Γฦ࣮͠ߦՄೳʹͳΔ • τϥοΩϯά͕Մೳ • ۀՄೳʹͳΔ • ࣮ߦڥ͕҆ఆ͢Δ
ϨόϨοδޮՌΛੜΉࣗಈԽͷצͲ͜Ζ • ख࡞ۀ => ࣗಈ࣮ߦ • λεΫ͕ίϚϯυϥΠϯʹཧ͞ΕΔ • λεΫ͕ཧɾղ͞ΕΔ •
λεΫ͕ίʔυͰදݱ͞ΕΔʢʓʓ as a codeʣ • ܁Γฦ࣮͠ߦՄೳʹͳΔ • τϥοΩϯά͕Մೳ • ۀՄೳʹͳΔ • ࣮ߦڥ͕҆ఆ͢Δ
λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ
λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ
λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ
λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ • ࣗಈԽ͕ՄೳʹͳΔ
λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ • ࣗಈԽ͕ՄೳʹͳΔ • ୭Ͱ࣮ߦՄೳʹͳΔ • ಡΊΘ͔ΔΑ͏ʹͳΔ
• ڥ͕҆ఆ͢Δ • etc.
ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ
λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ • มߋཧ͕ՄೳʹͳΔ • τϥοΩϯάՄೳʹͳΔ • ࠶ݱՄೳʹͳΔ
• etc.
ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ
ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ
λεΫ࣮ߦڥͱͯ͠ͷBitrise • ϫʔΫϑϩʔͱτϦΨʔͷΈ͕ॊೈͰڧྗ • εέδϡʔϧ࣮ߦ͕ʢ͓ͦΒ͘ʣແݶʹఆٛͰ͖Δ • Web UI͕ศར
λεΫ࣮ߦڥͱͯ͠ͷBitrise • ϩά͕ݟͮΒ͍ • ίϚϯυϥΠϯͰͰ͖Δૢ࡞͕গͳ͍ • ίϛοτ୯ҐͰ࣮ߦΛεΩοϓ͠ʹ͍͘
Bitriseͷόϥϯεͷ͍͍ར༻ͷίπ • ϒϥϯνͱϫʔΫϑϩʔΛ໊લϧʔϧͰϚοϐϯά͢Δͱศར • ࣮ߦͷίετ͕͍҆ͷͰࣦഊΛؾʹͤͣʹϦτϥΠͰϦΧόʔ͢Δ • σόοάେมͳͷͰૉʹ࣮ߦ͞ΕΔΑ͏ʹ͢Δ • όϦΤʔγϣϯτϦΨʔͱϒϥϯνͷΈ߹ΘͤͰ࣮ݱ͢Δ
GitHubΛத৺ͱ͢ΔࣗಈԽͷγεςϜ • τϦΨʔͱͯ͠ͷPR • ςετڥͱͯ͠ͷϒϥϯν • λεΫͷมߋཧ • ࣮ߦ݁Ռͷอଘɾཧ •
ϑΝΠϧஔ͖ͱͯ͠ͷGitHub • Ծ࣮ߦڥͱͯ͠ͷCI
• deliver • deliver-internal • deliver-external • nightly-build • update-license-plist
• refresh-dSYMs • test • sync-bitrise-yml • renew-build-cache • update-dependencies • update-tools • nightly-tests App Store Connect/Fabricͷ৴ masterͰϑϧϏϧυ͢Δ ͯ͢ͷςετΛ࣮ߦ OSSͷϥΠηϯεใͷߋ৽ dSYMͷΞοϓϩʔυ PR͝ͱͷςετ Bitrise.ymlͷμϯϩʔυ ϥΠϒϥϦͷࣗಈߋ৽ πʔϧͷࣗಈߋ৽ ϏϧυΩϟογϡͷΫϦʔχϯά
• deliver • deliver-internal • deliver-external • nightly-build • update-license-plist
• refresh-dSYMs • test • sync-bitrise-yml • renew-build-cache • update-dependencies • update-tools • nightly-tests App Store Connect/Fabricͷ৴ masterͰϑϧϏϧυ͢Δ ͯ͢ͷςετΛ࣮ߦ OSSͷϥΠηϯεใͷߋ৽ dSYMͷΞοϓϩʔυ PR͝ͱͷςετ Bitrise.ymlͷμϯϩʔυ ϥΠϒϥϦͷࣗಈߋ৽ πʔϧͷࣗಈߋ৽ ϏϧυΩϟογϡͷΫϦʔχϯά Ϗϧυڥͷ҆ఆԽ ϦϦʔε͕τϥοΩϯάՄೳ ୭ͰɾͲ͜Ͱɾ͍ͭͰϦϦʔεՄೳ Ϗϧυڥ as a code Ϗϧυʹඞཁͳͷ Ϗϧυखॱ ґଘؔ ෆ۩߹͕ग़ͨͱ͖ͷௐࠪ ڥͷมߋͷτϥοΩϯά
ϏϧυɾςετͷࣗಈԽ $ brew update $ brew reinstall "carthage" $ bundle
install --path=vendor/bundle --binstubs=vendor/bin $ bundle exec fastlane download_build_cache $ Scripts/build_carthage $ Scripts/build_pods $ bundle exec fastlane folio_tests $ set -o pipefail && xcodebuild test -workspace Folio.xcworkspace -scheme Folio-Release-Staging -destination 'name=iPhone X,OS=11.4' -only-testing:FolioTests -derivedDataPath DerivedData -enableCodeCoverage YES ENABLE_TESTABILITY=YES | xcpretty
ϦϦʔεϏϧυɾ৴ͷࣗಈԽ $ brew update $ brew reinstall "carthage" $ bundle
install --path=vendor/bundle --binstubs=vendor/bin $ bundle exec fastlane download_build_cache $ Scripts/build_carthage $ Scripts/build_pods $ bundle exec fastlane folio_tests $ set -o pipefail && xcodebuild test -workspace Folio.xcworkspace -scheme Folio-Release-Staging -destination 'name=iPhone X,OS=11.4' -only-testing:FolioTests -derivedDataPath DerivedData -enableCodeCoverage YES ENABLE_TESTABILITY=YES | xcpretty
ɹϥΠϒϥϦͷࣗಈߋ৽
OpenAPI (Swagger)ͷࣗಈੜ
OpenAPI (Swagger)ͷࣗಈੜ
Bitrise.ymlͷಉظ
ɹϥΠϒϥϦͷϏϧυͱΩϟογϡ
ɹϥΠϒϥϦͷϏϧυͱΩϟογϡ
ΫϦʔϯͳԾڥͱͯ͠ͷBitrise
·ͱΊ • λεΫΛίʔυͰදݱ͢Δ͜ͱͰϨόϨοδ͕ޮ͘ • BitriseΛ͏߹ɺGitHubΛτϦΨʔ࣮ߦͷίϯτϩʔϧͱͯ͠͏ ͱόϥϯε͕͍͍ • BitriseΫϦʔϯͳϏϧυڥͱͯ͠ར༻Ͱ͖ΔʢAlt Dockerʁʣ •
ࣗಈԽΛಥ͖٧ΊΔͱখ͞ͳίετͰେ͖ͳϝϦοτ͕ಘΒΕΔ
Reference https://blog.kishikawakatsumi.com/entry/2019/06/19/160150