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
Fastlane: Android Deployments on Steroids
Search
Ragunath Jawahar
February 25, 2017
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fastlane: Android Deployments on Steroids
Presented in Feb '17 Blrdroid meetup.
https://www.meetup.com/blrdroid/events/237112474
Ragunath Jawahar
February 25, 2017
More Decks by Ragunath Jawahar
See All by Ragunath Jawahar
Context Management for Everyday Software Engineering
ragunathjawahar
1
76
The Hidden Cognitive Costs of AI-assisted Programming @ GIDS 2026
ragunathjawahar
1
120
AI-Native Codebases
ragunathjawahar
1
110
AI-Native Codebases x BLR Kotlin
ragunathjawahar
1
56
Single-responsibility principle meets the real world! (Dubai Edition)
ragunathjawahar
0
100
Single-responsibility principle meets the real world!
ragunathjawahar
0
210
Making sense of large Java and Kotlin classes
ragunathjawahar
1
340
Building Robust Software, Episode 3
ragunathjawahar
1
220
Building Robust Software, Episode 2
ragunathjawahar
1
180
Other Decks in Programming
See All in Programming
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
120
Deep dive into the select statement (GopherCon UK)
jespino
0
170
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.4k
不幸な GC
chencmd
0
860
自分的「カンファレンスの楽しみ方」
syumai
0
170
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
180
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
620
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
120
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
ALB ログから Trace を気合で繋げる技術
fohte
7
840
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
280
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
260
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
800
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
330
Building an army of robots
kneath
306
46k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
How to build a perfect <img>
jonoalderson
1
5.9k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
460
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Designing Experiences People Love
moore
143
24k
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
Fastlane Android Deployments on Steroids Ragunath Jawahar
None
• The “release” engineer is on leave • That bug
fix is not worth a release • Shipped a wrong build variant • I want the latest build “Right NOW” • You make daily builds • Someone help me with the screenshots • Want to be a more efficient engineer
Installing & Setting Up
https://fastlane.tools sudo gem install fastlane
fastlane init
Fastfile • Can and usually has multiple lanes • Each
lane is composed of various Fastlane actions • Actions communicate using the “lane context”
Beta Deployment
β Checklist • Version bump • Commit and push •
Build • Upload for Distribution • Release Notes • Communicate
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
lane :beta do increment_version_code gradle(task: "clean") gradle(task: "assembleRelease") supply(track: "beta")
commit_android_version_bump changelog_from_git_commits slack push_to_git_remote end
fastlane android beta
None
None
Release Deployment
fastlane supply init
Release Checklist • Run tests • Take Screenshots • Build
• Upload for Distribution
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
lane :release do gradle(task: ”assembleDebug assembleAndroidTest") screengrab(locales: [‘en-US’, ‘fr-FR’]) gradle(task:
”clean") gradle(task: "assembleRelease") supply end
fastlane android release
Screengrab
public void screenshotOffersScreen() { onView(withId(R.id.offers)).perform(click()); Screengrab.screenshot("offers"); }
public void screenshotOffersScreen() { onView(withId(R.id.offers)).perform(click()); Screengrab.screenshot("offers"); }
None
What else?
• Send command-line parameters • Extend Fastfile by adding your
own methods • Badge app icons • Check if your working directory is clean • Send a tweet
fastlane actions --platform android fastlane action [name] fastlane search_plugins
ragunathjawahar GitHub / Gmail / Twitter