Jeder redet von Continuous Delivery, aber was macht eine gute Development-, Testing- und Delivery-Pipeline aus? Diese Session soll zeigen, welche Schritte nötig sind, um das Ziel Continuous Delivery zu erreichen. Neben Themen wie Update- und Roll-out-Strategie werden ebenso Crash Reports und Analytics-Möglichkeiten beleuchtet.
2. Michael Kotten (a.k.a. @michaelkotten)
ÜBER MICH
MK
#WISSENTEILEN
• Head of mobile development
• Enterprise & Mobile
• Developer & Speaker
• IOT Fan
• zweifacher Vater, einfacher Ehemann
5. Continuous Delivery
#WISSENTEILEN
Continuous delivery (CD) is a software engineering approach in which
teams produce software in short cycles, ensuring that the software can be
reliably released at any time.
(wikipedia.org)
18. Continuous Integration
#WISSENTEILEN
„Continuous Integration is a software development practice where
members of a team integrate their work frequently, usually each person
integrates at least daily - leading to multiple integrations per day.
Each integration is verified by an automated build (including test) to detect
integration errors as quickly as possible.“
(Martin Fowler)
35. Fastlane
#WISSENTEILEN
fastlane is the tool to release your iOS and Android app 🚀
It handles all tedious tasks, like generating screenshots, dealing with code
signing, and releasing your application.
(https://fastlane.tools)
38. fastlane
#WISSENTEILEN
• Bis zu 20 (Sprachen) x 6 (Geräte) x 5
(Screenhots) = 600 Screenshots
• Automatische Erzeugung während UI Tests
• Immer die gleichen Screenshots
43. fastlane
Fastfile
#WISSENTEILEN
• Beschreibung der Deployment Pipeline
• Pipeline as Code
• Eigene DSL
lane :beta do
increment_build_number
gym # Build your app
testflight # Upload to TestFlight
end
lane :appstore do
snapshot # Generate screenshots for the App Store
gym # Build your app
deliver # Upload the screenshots and the binary to iTunes
slack # Let your team-mates know the new version is live
end
49. Continuous Delivery
Pipeline Plugin
#WISSENTEILEN
• Can support complex, real-world, CD Pipeline
requirements: pipelines can fork/join, loop, parallel, to
name a few
• Is Resilient: pipeline executions can survive master restarts
• Is Pausable: pipelines can pause and wait for human
input/approval
• Is Efficient: pipelines can restart from saved checkpoints
• Is Visualized: Pipeline StageView provides status at-a-
glance dashboards including trending
50. #WISSENTEILEN
Jenkinsfile
node {
stage 'Checkout and Setup'
deleteDir()
checkout scm
stage 'Lint'
sh 'fastlane lint'
stage 'Test'
sh 'fastlane test'
stage 'Build'
def build_number = env.BUILD_NUMBER
sh "fastlane build build_number:${build_number}"
stage 'Deploy'
archive 'reports/, dist/'
sh 'fastlane deploy'
}
56. Michael Kotten
Head of mobile development
michael.kotten@openknowledge.de
@michaelkotten
+49 (0)441 4082 – 0
OFFENKUNDIGGUT
KONTAKT
#WISSENTEILEN
57. Icons in this presentation designed by “Freepik”, “Nice and
Serious” and “Elegant Themes” from www.flaticon.com
• [1] Rainer Sturm / pixelio.de
• [45] Erwin Lorenzen / pixelio.de
BILDNACHWEISE
#WISSENTEILEN