O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

SAPUI5/OpenUI5 - Continuous Integration

2.457 visualizações

Publicada em

Presentation of SAPUI5/OpenUI5 Continuous Integration infrastructure for DSAG (German-Speaker UserGroup) workgroup for UI technologies on Jan 25th, 2017.

Publicada em: Tecnologia
  • Hello! I can recommend a site that has helped me. It's called ⇒ www.HelpWriting.net ⇐ So make sure to check it out!
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • I can advise you this service - ⇒ www.WritePaper.info ⇐ Bought essay here. No problem.
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Ich kann eine Website empfehlen. Er hat mir wirklich geholfen. ⇒ www.WritersHilfe.com ⇐ Zufrieden und beeindruckt.
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

SAPUI5/OpenUI5 - Continuous Integration

  1. 1. SAPUI5 Continuous Integration Peter Muessig, SAP SE January, 2017 Confidential
  2. 2. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 2© 2017 SAP SE or an SAP affiliate company. All rights reserved. 2Public KPIs Some figures from SAPUI5: 1 Build Cluster 45 build slaves (classic virtual machines / some real) 2.200.000 Lines of JavaScript Code 78% Code Coverage (82,52 MB of JavaScript code) 1.200 QUnit / OPA Tests 17.000 checks in total (per OS/Browser combination) 30 (up to 100!) integrations per day for OpenUI5 150 people contributing to OpenUI5 / SAPUI5 Core & Runtime 5 parallel nightly builds 6 hours per nightly build, test and deployment
  3. 3. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 3© 2017 SAP SE or an SAP affiliate company. All rights reserved. 3Public What is Continuous Integration? “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, ThoughtWorks
  4. 4. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 4© 2017 SAP SE or an SAP affiliate company. All rights reserved. 4Public Continuous Integration Workflow @ SAPUI5 Developer Prepares and uploads a change/commit Code Review & Verify Integrate Build Test Deploy Build Server Verifies the change with code checks, functional and integration tests Build Server Runs a nightly build and executes the full verification process. Developer Submits the change once verified and reviewed by another developer. Build Server Validates the changes with application and visual tests. Build Server Deploys the validated build result into all platforms. Developer Does a 4-eyes review of the change 1 hour 6 hours
  5. 5. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 5© 2017 SAP SE or an SAP affiliate company. All rights reserved. 5Public Key Concepts (by Martin Fowler) The 9 pillars of Continuous Integration are: Maintain a source code repository Automate the build Make your build self testing Every commit should build before integration Keep the build fast Test in a clone of the production environment Make it easy to get the latest deliverables Everyone can see what’s happening Automate the deployment Code Build Test Deploy
  6. 6. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 6© 2017 SAP SE or an SAP affiliate company. All rights reserved. 6Public Pillar #1: Maintain a source code repository Source code is maintained in: Git/Gerrit (fulfills SAP product standards) • SAPUI5 has been moved to Git/Gerrit (5yrs ago) to use the voter & review process. • Nowadays also GitHub is supported but the migration effort is too high and advantages are too minimal. Multiple Git repositories • SAPUI5 code base is splitted into the OpenUI5, SAPUI5 Core & Runtime, Inner Source and SAPUI5 Distribution. OpenUI5 is mirrored to GitHub • Established a Git/Gerrit to GitHub mirroring to publish changes incl. contribution process.
  7. 7. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 7© 2017 SAP SE or an SAP affiliate company. All rights reserved. 7Public Pillar #2: Automate the build The build is… …based on Apache Maven • Best or breed development & build tool 8 years ago with a strong dependency management which became the standard build tool inside SAP being certified to create customer releases • SAPUI5 implemented several plugins to support a JavaScript build, test and deployment with Maven for UI5 libraries and UI5 components (e.g. minification, preloads, bundling, theme builds, lightening, …) …automated with Jenkins • Executes scheduled Maven/Node builds …advancing to NodeJS (Grunt) • OpenUI5 development & build tools are based on Grunt • Modernization of SAPUI5 build tooling to a pure Node tooling incl. customer availability is in progress
  8. 8. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 8© 2017 SAP SE or an SAP affiliate company. All rights reserved. 8Public Pillar #3: Make your build self testing The build executes… …static code checks • Platform constraints checks to verify proper file encoding of source files, avoid internals, … • ESLint checks to identify typical issues and to ensure a proper coding guideline …functional and integration test • QUnit function tests to validate a fully functional framework and controls functionality on feature level • OPA integration tests to verify the framework and controls functionality in application scenarios
  9. 9. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 9© 2017 SAP SE or an SAP affiliate company. All rights reserved. 9Public Pillar #4: Every commit should build before integration The commits/changes are… …uploaded to Git/Gerrit • Every new feature must provide a QUnit test • Bug fixes must include a check via a QUnit test …verified with a Jenkins voter build • Commit messages are validated • Platform checks, static code checks are executed • QUnit tests and OPA tests are executed via Selenium with PhantomJS on Jetty server …reviewed by another SAPUI5 developer • Each commit requires a 4-eyes review to finally submit the change into the central codeline • Enforced by Git/Gerrit process
  10. 10. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 10© 2017 SAP SE or an SAP affiliate company. All rights reserved. 10Public Pillar #5: Keep the build fast Build performance is key but tough! Voter builds are running for 1 hour • Full build of the deliverables • Tests on a reduced set of OS/browser combination Nightly builds are running for 6 hours • Exclusive build machines (one per version) • Tests on each supported OS/browser combination • Runs Bitmap Comparison Tests • Executes Performance Tests • Triggers Security Code Scans • Runs Open Source Software Scans • Uploads i18n texts Developers Wishlist: 1. I want a fast build!
  11. 11. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 11© 2017 SAP SE or an SAP affiliate company. All rights reserved. 11Public Pillar #6: Test in a clone of the production environment Integration tests are… …executing real application tests • Implemented as OPA/QUnit tests • Contributed by application development …running on several OS …running in several browsers …relevant to decide whether a version can be deployed or not
  12. 12. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 12© 2017 SAP SE or an SAP affiliate company. All rights reserved. 12Public Pillar #7: Make it easy to get the latest deliverables The build artifacts are… …deployed to central Maven repository • SAP hosts a Nexus server which acts as a proxy for external Maven repositories and is used to manage the SAP artifacts • The build results are uploaded to Nexus after a successful nightly build …available in several versions • SNAPSHOTs are updated on daily basis • Releases are stable (uploaded once) …available in various formats • Static deployable, Java deployable, …
  13. 13. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 13© 2017 SAP SE or an SAP affiliate company. All rights reserved. 13Public Pillar #8: Everyone can see what’s happening Processes are transparent: Maven builds are reproducible everywhere • Developers can run the Maven build and test execution locally at any time (same as central) Sonar reporting • ESLint violations • QUnit test success rate • Code coverage percentage Jenkins reporting • Access to build logs • Mail notification when breaking the build • QUnit test checks (incl. screenshot for errors) • Code coverage results
  14. 14. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 14© 2017 SAP SE or an SAP affiliate company. All rights reserved. 14Public Pillar #9: Automate the deployment Build results will be deployed to: Tomcat Sandboxes NetWeaver ABAP SAP HANA Cloud Platform NetWeaver Java SAP HANA XS Classic and Advanced
  15. 15. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 15© 2017 SAP SE or an SAP affiliate company. All rights reserved. 15Public Continuous Integration for Customers Material & Tutorials: OpenUI5 Preload Tooling https://blogs.sap.com/2015/02/18/optimizing-openui5-apps/ CI for SAPUI5/SAP Fiori on ABAP Front- End Server http://www.sap.com/developer/tutorials/ci-best-practices-fiori-abap.html
  16. 16. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 16© 2017 SAP SE or an SAP affiliate company. All rights reserved. 16Public Questions? Thank You…
  17. 17. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 17© 2017 SAP SE or an SAP affiliate company. All rights reserved. 17Public © 2017 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. Please see http://global12.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP SE or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP SE or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward- looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions.
  18. 18. © 2016 SAP SE or an SAP affiliate company. All rights reserved. 18© 2017 SAP SE or an SAP affiliate company. All rights reserved. 18Public © 2017 SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP SE oder ein SAP-Konzernunternehmen nicht gestattet. SAP und andere in diesem Dokument erwähnte Produkte und Dienstleistungen von SAP sowie die dazugehörigen Logos sind Marken oder eingetragene Marken der SAP SE (oder von einem SAP-Konzernunternehmen) in Deutschland und verschiedenen anderen Ländern weltweit. Weitere Hinweise und Informationen zum Markenrecht finden Sie unter http://global.sap.com/corporate-de/legal/copyright/index.epx. Die von SAP SE oder deren Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten auch anderer Softwarehersteller enthalten. Produkte können länderspezifische Unterschiede aufweisen. Die vorliegenden Unterlagen werden von der SAP SE oder einem SAP-Konzernunternehmen bereitgestellt und dienen ausschließlich zu Informationszwecken. Die SAP SE oder ihre Konzernunternehmen übernehmen keinerlei Haftung oder Gewährleistung für Fehler oder Unvollständigkeiten in dieser Publikation. Die SAP SE oder ein SAP-Konzernunternehmen steht lediglich für Produkte und Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte und Dienstleistungen ausdrücklich geregelt ist. Keine der hierin enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren. Insbesondere sind die SAP SE oder ihre Konzernunternehmen in keiner Weise verpflichtet, in dieser Publikation oder einer zugehörigen Präsentation dargestellte Geschäftsabläufe zu verfolgen oder hierin wiedergegebene Funktionen zu entwickeln oder zu veröffentlichen. Diese Publikation oder eine zugehörige Präsentation, die Strategie und etwaige künftige Entwicklungen, Produkte und/oder Plattformen der SAP SE oder ihrer Konzernunternehmen können von der SAP SE oder ihren Konzernunternehmen jederzeit und ohne Angabe von Gründen unangekündigt geändert werden. Die in dieser Publikation enthaltenen Informationen stellen keine Zusage, kein Versprechen und keine rechtliche Verpflichtung zur Lieferung von Material, Code oder Funktionen dar. Sämtliche vorausschauenden Aussagen unterliegen unterschiedlichen Risiken und Unsicherheiten, durch die die tatsächlichen Ergebnisse von den Erwartungen abweichen können. Die vorausschauenden Aussagen geben die Sicht zu dem Zeitpunkt wieder, zu dem sie getätigt wurden. Dem Leser wird empfohlen, diesen Aussagen kein übertriebenes Vertrauen zu schenken und sich bei Kaufentscheidungen nicht auf sie zu stützen.

×