1, 2, 3 build - continuous integration für mobile apps

Post on 26-Jan-2017

63 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 1

1, 2, 3 - Build!Continuous Integration für Mobile

Apps@PachaAlexander

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 2

MotivationJenkins aufsetzen (Oh nein… nicht schon wieder!)

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 3

“Zivilisationen entwickeln sich weiter, indem sie die Anzahl der wichtigen Operationen erhöhen, die sie durchführen können ohne zu denken.“ (Sinngemäß aus dem Englischen)

Alfred North Whitehead

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 4

Kurze Umfrage

Was wird entwickelt?Versionskontrollsysteme?

Delivery Methode?CI Tools?

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 5

Continuous Integration

Quelle: https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 6

1Automatisierter Build

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 7

Der Build-Prozess

Repository Bekannte Buildumgebung Deliverable

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 8

Bekannte Buildumgebung

iOS-Apps benötigen Mac

Projektabhängig

UWP-Apps benötigen Windows

Android Apps sind plattformunabhängig

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 9

Live-Demo

GreenhouseCIAutomatisierten Buildprozess aufsetzen

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 10

Automatische Versionierung

https://gist.github.com/apacha

CI sollte Versionsnummer automatisch vergeben

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 11

Apps signieren

AndroidKeystores (selbstgeneriert)Debug vs. Release Keystore

Weitere Informationen:• https://developer.android.com/studio/publish/app-signing.htm

l

• https://codesigning.guide/ • http://sharpmobilecode.com/making-sense-of-ios-provisioning

/

iOSIdentity Certificates und

Provisioning ProfilesDedizierte Testgeräte

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 12

2Automatisierte Tests

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 13

“Teste früh. Teste oft. Teste automatisiert”

Hunt and Thomas – The Pragmatic Programmer

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 14

Automatisierte Unit-TestsLeicht umsetzbar auf allen Plattformen

Live-Demo

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 15

Automatisierte UI-Tests

• GreenhouseCI, Bitrise und Travis unterstützen Android Emulator und iOS Simulator direkt

• VSTS benötigt Agent: https://github.com/Microsoft/vsts-agent

• On-Devices Services• Testdroid• Firebase• Xamarin Test Cloud• AWS Device Farm• Testobject

Testen auf virtuellen und physischen Geräten

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 16

Automatisierte UI-TestsFirebase

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 17

Automatisierte UI-Tests

Live-Demo

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 18

“Teste deine Software, oder deine Anwender tun es”

Hunt and Thomas – The Pragmatic Programmer

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 19

3Automatisches Deployment

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 20

Automatisches DeploymentDeployment für Google Play Store

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 21

Automatisches DeploymentDeployment für Apple App Store

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 22

Automatisches DeploymentDeployment für Apple App Store mit Fastlane

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 23

Deployment an (Beta-)Tester

Direktes Deployment der App an TesterVerfügbar für alle Plattformen

Weitere Features: • Statistiken• Melden von Abstürzen (inkl. Stack-Trace)• Feedback• Automatische Aktualisierung (side-loading)

HockeyApp

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 24

Weitere Tools und Ressourcen

• Fabric Crashlytics • Testflight BetaTesting für iOS• Google Firebase

Weitere Links auf http://my-it.at

© Zühlke 20171, 2, 3 - Build! | Alexander Pacha 18. Januar 2017 Folie 25

Zusammenfassung

• Continuous Integration und Continuous Delivery ist auch für mobile Applikationen möglich und sinnvoll

• Aufsetzen manchmal knifflig, aber den Aufwand wert• Onlinedienste oft kostenpflichtig, aber helfen besonders

am Anfang sehr• Jeder Dev kann leicht DevOp werden

top related