43
Damit die Tester schneller ran können. Daily Builds mit SharePoint David Schneider

Collaboration Days 2011 - Damit die Tester schneller ran können

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Collaboration Days 2011 - Damit die Tester schneller ran können

Damit die Tester schneller ran können.Daily Builds mit SharePoint

David Schneider

Page 2: Collaboration Days 2011 - Damit die Tester schneller ran können

David Schneider: [email protected]

Blog: http://blog.sharepoint.chisolutions AG: http://www.isolutions.ch

About the Speaker

Page 3: Collaboration Days 2011 - Damit die Tester schneller ran können

Agenda Paketierung Team Foundation Server Automatisches Deployment Build Quality, Versionierung, Continuous

Integration

Page 4: Collaboration Days 2011 - Damit die Tester schneller ran können

Die Vision

«Jede Nacht wird der aktuelle Stand der Entwicklung auf unser Testsystem deployt.

Sämtliche Daten sind vorhanden, so dass die Tester sofort mit dem Test beginnen können.»

Page 5: Collaboration Days 2011 - Damit die Tester schneller ran können

Agile Projekte, kurze Iterationen Jede Iteration muss getestet werden Die Lösung wird immer wieder deployt

Deployment muss schnell und einfach erfolgen (ansonsten laufen die Kosten aus dem Ruder)

Herausforderung

Page 6: Collaboration Days 2011 - Damit die Tester schneller ran können

Build Automation is not…

F5

Page 7: Collaboration Days 2011 - Damit die Tester schneller ran können

SharePoint Solutions

Code (Web Parts, Event Receivers)

Composites (SharePoint

Designer, Customizations)

Content (Sitestruktur, Listeninhalte,

Berechtigungen)

Page 8: Collaboration Days 2011 - Damit die Tester schneller ran können

Deployment von Code Solutions «Deployment» von No-Code Customizations Erstellen der Site Struktur Einrichten der Sites Erfassen von Stammdaten Vergeben von Berechtigungen

Umfang des Deployments

Page 9: Collaboration Days 2011 - Damit die Tester schneller ran können

DEV

TEST

INT

PROD

Ziel

Deployment erfordert wenige manuelle Schritte

Paketierung als WSP Manipulationen per

Skript

Page 10: Collaboration Days 2011 - Damit die Tester schneller ran können

Was lässt sich als WSP deployen…Co

de • Web Parts• Event

Handlers• Coded

Workflows• JavaScript

Des

gin • Master

Page• Page

Layouts• CSS• Themes Cu

stom

izatio

ns • Content Types

• Site Columns

• Ribbon

Page 11: Collaboration Days 2011 - Damit die Tester schneller ran können

Visual Studio 2010 Projekt Features für Master Page, Page Layouts und Ressourcen Site Columns und Content Types

Visual Studio Add In http://cksdev.codeplex.com/

WSP einfach & schnell erstellen

Page 12: Collaboration Days 2011 - Damit die Tester schneller ran können

Wofür schreibt man ein Script…St

rukt

ur • Site Collections• Sites• Listen• Basisdaten

Funk

tione

n • Features aktivieren

• Master Pages setzen Zu

gang • Berechtigungen

• Navigation

Page 13: Collaboration Days 2011 - Damit die Tester schneller ran können

Site Template («Save as Template»)• Nur innerhalb einer Site Collection• Import nach Visual Studio bringt viel Ballast mit

Site Definition• Aufwändig, auch Microsoft rät davon ab

Web Templates• Delta zu OOTB Site Definition als Feature• Elements.xml und (vereinfachtes) ONET.XML

Deployment von Site Templates

Page 14: Collaboration Days 2011 - Damit die Tester schneller ran können

Workflows, BCS, Customized Forms, etc. Speichern als Sandbox Solution Deployment der Sandbox Solution mittels

PowerShell Script

Deployment von SPD Customizations

Page 15: Collaboration Days 2011 - Damit die Tester schneller ran können

Demo

Page 16: Collaboration Days 2011 - Damit die Tester schneller ran können

Content Benutzer Farm Design Language Packs Patch Level Service Applications• Profiles, MySite, Search, Managed Metadata

Alternate Access Mapping

Integrationsumgebung

Page 17: Collaboration Days 2011 - Damit die Tester schneller ran können

Produktentwicklung Mehrere Iterationen Team > 2 Entwickler Projektdauer > 2 Monate Verteilte Teams

Lohnt sich der Aufwand?

Page 18: Collaboration Days 2011 - Damit die Tester schneller ran können

Aufwand für Deployment ist gering Automatisches Deployment ist getestet Konsistente Builds

Gewinn

Page 19: Collaboration Days 2011 - Damit die Tester schneller ran können

Team Foundation Server 2010David Schneider

Page 20: Collaboration Days 2011 - Damit die Tester schneller ran können

Visual Studio Team System 2010

Page 21: Collaboration Days 2011 - Damit die Tester schneller ran können

Server Umgebung

Page 22: Collaboration Days 2011 - Damit die Tester schneller ran können

TFS Build Process

• Workflow Foundation 4.0Code zusammenstellen

• MSBuild 4.0Kompilieren

• Workflow Foundation 4.0Testing

• Workflow Foundation 4.0Deploying

Page 23: Collaboration Days 2011 - Damit die Tester schneller ran können

Team Build in SharePoint Projekten

David Schneider

Page 24: Collaboration Days 2011 - Damit die Tester schneller ran können

MSBuild Argument /p:IsPackaging=True

WSP generieren…

Page 25: Collaboration Days 2011 - Damit die Tester schneller ran können

Keine OOTB Unterstützung WF Activity PowerShell• z.B. http://sharepointci.codeplex.com/

Deployment der Lösung

Page 26: Collaboration Days 2011 - Damit die Tester schneller ran können

PowerShell Remoting erlaubenEnable-PSRemoting

Credentialsübergabe via CredSSP einschalten Enable-WSManCredSSP –Role Server

PowerShell Memory auf 1 GBSet-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024

Vorbereitung Integrationssystem

Page 27: Collaboration Days 2011 - Damit die Tester schneller ran können

LocalAdmin auf Integrationssystem Farm Administration Group Zugriff auf PowerShell

Add-SPShellAdmin

Berechtigungen Build Account

Page 28: Collaboration Days 2011 - Damit die Tester schneller ran können

PowerShell execution policySet-ExecutionPolicy RemoteSigned

Credentialsübergabe via CredSSPEnable-WSManCredSSP -Role client -DelegateComputer “SPServer”

Vorbereitung Build Agent

Page 29: Collaboration Days 2011 - Damit die Tester schneller ran können

Build Server Integrationsystem Enter-PSSession –ComputerName

“SPServer” Enter-PSSession -ComputerName

“SPServer” -Authentication CredSSP –Credential Get-Credential

Zugriff testen

Page 30: Collaboration Days 2011 - Damit die Tester schneller ran können

SharePoint/TFS Continuous Integration Starter Pack

David Schneider

Page 31: Collaboration Days 2011 - Damit die Tester schneller ran können

Build Prozess mit SharePoint CI

Page 32: Collaboration Days 2011 - Damit die Tester schneller ran können

PowerShell Script, welches die gesamte Lösung erstellt und konfiguriert.

Site Provisioning

Page 33: Collaboration Days 2011 - Damit die Tester schneller ran können

Site Provisioning

Page 34: Collaboration Days 2011 - Damit die Tester schneller ran können

Herausforderung: neuer Release einer bestehenden Lösung

Mögliche Lösung: Bei jedem Deployment Content DB löschen und neu attachen Upgrade Prozess durchlaufen

Version 1.1?

Page 35: Collaboration Days 2011 - Damit die Tester schneller ran können

Builds versionierenDavid Schneider

Page 36: Collaboration Days 2011 - Damit die Tester schneller ran können

Assembly Version wird referenziert (Web Parts, Web Controls, Event Handlers) und kann daher nicht geändert werden

Alternative: Assembly File Version Anzeige als Product Version

http://tfssimpleversioning.codeplex.com/

Versionierung der Assemblies

Page 37: Collaboration Days 2011 - Damit die Tester schneller ran können
Page 38: Collaboration Days 2011 - Damit die Tester schneller ran können

Weitere Qualitätsindikatoren

David Schneider

Page 39: Collaboration Days 2011 - Damit die Tester schneller ran können

Build Quality Indicators Failed/passed Tests Code Churn Code Coverage Active Bugs

Code Analysis SPDisposeCheck

TFS Reports

Page 40: Collaboration Days 2011 - Damit die Tester schneller ran können

Build und Deploy nach jedem Check In Deployment auf eigenes Test System,

welches nicht von den Tester verwendet wird

Automated UI Tests ausführen

Continuous Integration

Page 41: Collaboration Days 2011 - Damit die Tester schneller ran können

Paketierung von SharePoint Solutions Build mit TFS Deployment mit PowerShell Scripts

Zusammenfassung

Page 42: Collaboration Days 2011 - Damit die Tester schneller ran können

HERZLICHEN DANK

Page 43: Collaboration Days 2011 - Damit die Tester schneller ran können

David Schneider: [email protected]

Blog: http://blog.sharepoint.chisolutions AG: http://www.isolutions.ch

Kontaktdaten