Automation is
developer’s friend
Martin Přádný
pristo solutions, s.r.o.
Thanks to our sponsors!
8th Sutol Conference, November 2016
Martin Přádný
• Notes/Domino
– since 2000
• Java
• IBM BPM
• Sharepoint/K2 workflow
• @mpradny
• http://pradny.com
8th Sutol Conference, November 2016
Warning
• This session is:
– collection of tools that can make you more
productive and your life easier
– personal selection of tools that I like
• (at time of writing)
• This session is NOT:
– best practices session
– web development basics course
4
8th Sutol Conference, November 2016
Agenda
• Motivation
• Dev workstation
– Tools introduction
– Domino Designer integration
• CI server
– Jenkins Pipeline
– Selenium testing
5
8th Sutol Conference, November 2016
Motivation
• Dev toolbox changed
– from
• complex, big
• (expensive) IDEs
– to
• small, open-source
• (free) single-purpose tools
• linked by build tools/process
6
8th Sutol Conference, November 2016
Motivation II
• Application architecture shift
– from
• monolithic
• big and complex
– to
• orchestrated
• single-purpose components
• more complex flexible
7
8th Sutol Conference, November 2016
Motivation III
• IBM Domino is part of the game
– source control enablement
– headless Domino Designer
• Domino works like small PaSS for ages
– provides Directory, Storage, Security, Mail…
services
– simple app deployment model
– Domino Billing features
8
8th Sutol Conference, November 2016
Demo application
• Simple TODO app
– React.js frontend
– running in Domino nsf XPages app
– using Domino data via REST calls
• Built automatically
– from GIT repository
– tested by Selenium tests
9
8th Sutol Conference, November 2016
Dev workstation
• Not all developers use same setup
– OS differences
– Projects being worked on
– Personal preference
• IDE/editor preference
• Not all developers need to build whole project
• Portable build tools to rescue
• Single place of truth – SCM repository
10
8th Sutol Conference, November 2016
Toolbox
• Transpilers/Pre-processors
– from - syntax you want to write
– to - syntax that machine can work with
– (e.g. XPages to Java source code)
• Linters/Checkers
– analysis of code for potential problems
– ensures coding + formatting standards
11
8th Sutol Conference, November 2016
Toolbox II
• Package managers
– download what you need
– maintain dependencies
• Builder/bundler tools
– take assets you give them
– produce runnable package
12
8th Sutol Conference, November 2016
Toolbox III
• Task runners
– run and organize build workflow steps
• Dev servers
– fast preview of your changes
– integration with dev/debug tools
• Automated test tools
– verifies that all code still works
13
8th Sutol Conference, November 2016
Frameworks/Ecosystems
• Tools that work nicely together
• Specialized for some language or subject
domain
• JavaScript
– NPM (runs on Node.js)
• Java
– Maven
– Gradle
14
8th Sutol Conference, November 2016
Transpilers/Pre-processors - JS
• Babel
– ES2015 (== ES6)
– TypeScript
– Cleaner code, full browser compatibility
15
8th Sutol Conference, November 2016
Transpilers/Pre-processors - CSS
• LESS
• variables, mixins, functions
– alternative - SASS
16
8th Sutol Conference, November 2016
Linters/Checkers
• Javascript
– ESLint
• unused variables, tabs vs. spaces, semicolons …
• rule sets for React.js
– alternatives JSLint, JSHint, JSCS
• Java
– SonarQube Java analyzer
– FindBugs
• (not shown today)
17
8th Sutol Conference, November 2016
Builder/bundler tools - JavaScript
• Webpack
– produces bundle.js
• includes CSS
• + resources (e.g. fonts, images)
– provides webpack-dev-server with hot-reload
• alternatives
– Browserify
• and Gulp, Grunt tasks/plugins
18
8th Sutol Conference, November 2016
Never ending list
• Probably 10 new tools were published
during this session
• For beginners
– pick what you like after quick research
– use it and learn it
– change it once you understand differences
19
8th Sutol Conference, November 2016
Demo setup
• One GIT repository
• folder for Front-End project
– React.js, Webpack, json-server
– Bootstrap, LESS
– publishes to WEB-INF folder of NSF ODP
• folder for NSF On-Disk-Project
• Visual Studio Code for Front-End dev
• Separate VM as local Domino Dev server
20
8th Sutol Conference, November 2016
DEMO
21
8th Sutol Conference, November 2016
Summary Dev Machine
• Develop and test React.js app
– without Domino Designer or server
• Produce front-end package
– using webpack production build
– (installed with npm)
• Import it to Domino Designer
– Team synchronization enablement
– WEB-INF/dist folder
• Put it on an XPage
• View from Domino VM
22
8th Sutol Conference, November 2016
CI goal
• Build front-end
• Build NSF, incl. front-end
• Deploy to test Domino server
• Run Selenium tests
– Firefox
– Chrome
23
8th Sutol Conference, November 2016
Headless Domino Designer
• Command line invocation of Domino Designer
• Create NSF from On Disk Project
• Enable/Disable plugins
• New feature in 9.0.1
– http://www-
10.lotus.com/ldd/ddwiki.nsf/dx/Headless_Designer_W
iki
– notes.ini parameter -
DESIGNER_AUTO_ENABLED=true
– ID without password
24
8th Sutol Conference, November 2016
Headless Designer invocation
• Manually
– Single command command line
• designer -RPARAMS -vmargs -
Dcom.ibm.designer.cmd=[clean],[exit],[file
name],[job name],[file path],[file name]
– Command file
• designer -RPARAMS -vmargs -
Dcom.ibm.designer.cmd.file=[path to command
file]
25
8th Sutol Conference, November 2016
Headless Designer wrappers
• Maven – Christian Güdemann
– Included in public Maven repository
– Options to install Designer plugins
• Ant – Cameron Gregor
– Additional tasks for NSF manipulation
– Uses Java Native Interface
• Gradle - Martin Přádný
– not maintained
26
8th Sutol Conference, November 2016
Headless designer - Maven
<packaging>domino-nsf</packaging>
<properties>
<ddehd.odpdirectory>
${basedir}/on-disk-project
</ddehd.odpdirectory>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.openntf.maven</groupId>
<artifactId>headlessdesigner-maven-plugin</artifactId>
<version>1.3.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
27
8th Sutol Conference, November 2016
Why Maven
• Standard in XPages community
• OSGi friendly with Tycho plugin
– IBM released Update Site on OpenNTF.org
– IBM Domino Update Site for Build
Management
• Allows building Extension Libraries
28
8th Sutol Conference, November 2016
Automated tests
• Unit testing
– tests minimal runnable units – e.g. methods
– rest of “world” replaced with mocks
• Integration testing
– test run with real subsystems, dbs etc.
• UI testing
– test driven using UI
29
8th Sutol Conference, November 2016
Selenium
• Web browser automation (Firefox,
Chrome, IE,…)
• Selenium IDE (Firefox)
– Record tests
– Replay tests
– Export (Java, C#, ruby, Python, ..)
• Selenium server, grid
– Run tests on remote machines
30
8th Sutol Conference, November 2016
Continuous integration server
• Maintains central place which allows
– anyone build the project
– anyone see current build status
– test application before build is publish
– automatically publish application to production
• Triggered
– manually
– automatically (after commit, periodically)
31
8th Sutol Conference, November 2016
CI software
• Jenkins
– free, open-source
– many plugins
– master/slave architecture
• alternatives
– TeamCity
– Bamboo
– Travis CI
– (Bitnucket Pipelines, GitLab CI)
32
8th Sutol Conference, November 2016
Jenkins pipeline
• Define build using script
• Groovy based DSL
• Allows
– executor selection
– parallelism
– human interaction/approval
• Pipeline file from SCM
33
8th Sutol Conference, November 2016
DEMO change flow
34
8th Sutol Conference, November 2016
DEMO
+
Let’s break it
35
8th Sutol Conference, November 2016
Jenkins Blue Ocean - Beta
36
8th Sutol Conference, November 2016
CI Summary
• Build front-end
– Webpack
• Build NSF, incl. front-end
– Maven running Domino Designer
• Deploy to test Domino server
– ANT task
• Run Selenium tests
– Firefox and Chrome
– TestNG run with Maven
37
8th Sutol Conference, November 2016
Summary
• Our setup allows
– anyone with commit rights can modify the app
• no need for environment setup
• GIT and text editor are only needed tools
– even notepad or vi
– continually test with latest browsers
– easily build multiple versions
• e.g. stable and nightly
38
8th Sutol Conference, November 2016
Summary
• Our setup guarantees
– nsf is correctly compiled
– code passes tests
– latest version is available for everyone
– in case of problem, people are notified quickly
39
8th Sutol Conference, November 2016
Questions
40
8th Sutol Conference, November 2016
Sample repository
• https://bitbucket.org/pradnik/todoapp_full/b
ranch/develop
41
8th Sutol Conference, November 2016
Resources
• Csaba Kiss – Beyond XPages
– http://xpagexplorer.org/reactjs-workflow/
• Stephan Wissel - Domino, Extlib, GRUNT,
JSON and Yeoman
– http://www.wissel.net/blog/d6plinks/SHWL-
A3QHEL
• NotesIn9 – Patrick Kwinten – Using Grunt
With XPages
– http://www.notesin9.com/2016/10/10/notesin9-
202-using-grunt-with-xpages/
42

More Related Content

PPTX
XPages build automation and testing
PPTX
OpenNTF Webinar May 2021 - Jesse
PPTX
CollabSphere 2020 - NSF ODP Tooling
PDF
.NET Core in the Real World
PDF
Jenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
PPTX
MoldCamp - multidimentional testing workflow. CIBox.
PPTX
Celery workshop
PDF
Graphql usage
XPages build automation and testing
OpenNTF Webinar May 2021 - Jesse
CollabSphere 2020 - NSF ODP Tooling
.NET Core in the Real World
Jenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
MoldCamp - multidimentional testing workflow. CIBox.
Celery workshop
Graphql usage

What's hot (20)

PDF
Drupal 8 DevOps . Profile and SQL flows.
PPTX
Lessons Learned with Unity and WebGL
PPTX
Let me introduce you: DOTS
PDF
DrupalCon Los Angeles - Continuous Integration Toolbox
KEY
Celery
PDF
"Workstation Up" - Docker Development at Flow by Mike Roth
PPTX
Jenkins presentation
PDF
Juc boston2014.pptx
PPTX
.Net Core
PDF
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
PPTX
C#: Past, Present and Future
PPTX
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
PPTX
How to use Concourse CI to deliver BOSH releases
PPTX
Jenkins Pipeline 101 and TCI - presentation and workshop
PPTX
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
PDF
Ci For The Web 2.0 Guy Or Gal
PPTX
Symfony Under Control by Maxim Romanovsky
PDF
slide-dnrdw
PDF
Open source and cross platform .net
PDF
Hacking Jenkins
Drupal 8 DevOps . Profile and SQL flows.
Lessons Learned with Unity and WebGL
Let me introduce you: DOTS
DrupalCon Los Angeles - Continuous Integration Toolbox
Celery
"Workstation Up" - Docker Development at Flow by Mike Roth
Jenkins presentation
Juc boston2014.pptx
.Net Core
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
C#: Past, Present and Future
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
How to use Concourse CI to deliver BOSH releases
Jenkins Pipeline 101 and TCI - presentation and workshop
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Ci For The Web 2.0 Guy Or Gal
Symfony Under Control by Maxim Romanovsky
slide-dnrdw
Open source and cross platform .net
Hacking Jenkins
Ad

Similar to Sutol 2016 - Automation is developer's friend (20)

PDF
2016 SUTOL: React.js – High-Performance Client for Domino
PPTX
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
PDF
What's New in NetBeans IDE 7.x
PDF
What’s New & Cool in NetBeans IDE 7.x
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
PPTX
Introduction to Modern and Emerging Web Technologies
PPTX
Phonedeck Developers' Introduction - Salesforce Meetup Berlin
PPTX
IT TRENDS AND PERSPECTIVES 2016
PPTX
Web European Conference 2015 - Welcome Session
PDF
Sogeti labs developer-today-v1.1
PDF
KCDC_2022_GitHubActions_slide-share.pdf
PPTX
Coding for the cloud - development of modern web applications
PPTX
IBM Connect 2017 - Beyond Domino Designer
PPT
State of modern web technologies: an introduction
PDF
Focus Group Open Source 28.4.2010 Paolo Maresca
PPTX
Modern Domino: IBM Connect 2014 Summary
PDF
Pelegri Desarrollando en una nueva era de software
PDF
Enabling z Agility with DevOps and Enterprise Transformation
PPTX
DemoCamp Budapest 2016 - Introdcution
PDF
Liquid Day - Retos modernos del desarrollo de aplicaciones de negocio
2016 SUTOL: React.js – High-Performance Client for Domino
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What's New in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Introduction to Modern and Emerging Web Technologies
Phonedeck Developers' Introduction - Salesforce Meetup Berlin
IT TRENDS AND PERSPECTIVES 2016
Web European Conference 2015 - Welcome Session
Sogeti labs developer-today-v1.1
KCDC_2022_GitHubActions_slide-share.pdf
Coding for the cloud - development of modern web applications
IBM Connect 2017 - Beyond Domino Designer
State of modern web technologies: an introduction
Focus Group Open Source 28.4.2010 Paolo Maresca
Modern Domino: IBM Connect 2014 Summary
Pelegri Desarrollando en una nueva era de software
Enabling z Agility with DevOps and Enterprise Transformation
DemoCamp Budapest 2016 - Introdcution
Liquid Day - Retos modernos del desarrollo de aplicaciones de negocio
Ad

Recently uploaded (20)

PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PDF
BoxLang Dynamic AWS Lambda - Japan Edition
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PDF
AI/ML Infra Meetup | Beyond S3's Basics: Architecting for AI-Native Data Access
PPTX
most interesting chapter in the world ppt
PDF
MCP Security Tutorial - Beginner to Advanced
PDF
CCleaner 6.39.11548 Crack 2025 License Key
DOC
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
PDF
Microsoft Office 365 Crack Download Free
PDF
Multiverse AI Review 2025: Access All TOP AI Model-Versions!
PPTX
"Secure File Sharing Solutions on AWS".pptx
PPTX
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
PPTX
Airline CRS | Airline CRS Systems | CRS System
PDF
Visual explanation of Dijkstra's Algorithm using Python
PPTX
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
PPTX
Introduction to Windows Operating System
Wondershare Recoverit Full Crack New Version (Latest 2025)
Practical Indispensable Project Management Tips for Delivering Successful Exp...
iTop VPN Crack Latest Version Full Key 2025
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
BoxLang Dynamic AWS Lambda - Japan Edition
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Weekly report ppt - harsh dattuprasad patel.pptx
AI/ML Infra Meetup | Beyond S3's Basics: Architecting for AI-Native Data Access
most interesting chapter in the world ppt
MCP Security Tutorial - Beginner to Advanced
CCleaner 6.39.11548 Crack 2025 License Key
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
Microsoft Office 365 Crack Download Free
Multiverse AI Review 2025: Access All TOP AI Model-Versions!
"Secure File Sharing Solutions on AWS".pptx
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
Airline CRS | Airline CRS Systems | CRS System
Visual explanation of Dijkstra's Algorithm using Python
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
Introduction to Windows Operating System

Sutol 2016 - Automation is developer's friend

  • 1. Automation is developer’s friend Martin Přádný pristo solutions, s.r.o.
  • 2. Thanks to our sponsors!
  • 3. 8th Sutol Conference, November 2016 Martin Přádný • Notes/Domino – since 2000 • Java • IBM BPM • Sharepoint/K2 workflow • @mpradny • http://pradny.com
  • 4. 8th Sutol Conference, November 2016 Warning • This session is: – collection of tools that can make you more productive and your life easier – personal selection of tools that I like • (at time of writing) • This session is NOT: – best practices session – web development basics course 4
  • 5. 8th Sutol Conference, November 2016 Agenda • Motivation • Dev workstation – Tools introduction – Domino Designer integration • CI server – Jenkins Pipeline – Selenium testing 5
  • 6. 8th Sutol Conference, November 2016 Motivation • Dev toolbox changed – from • complex, big • (expensive) IDEs – to • small, open-source • (free) single-purpose tools • linked by build tools/process 6
  • 7. 8th Sutol Conference, November 2016 Motivation II • Application architecture shift – from • monolithic • big and complex – to • orchestrated • single-purpose components • more complex flexible 7
  • 8. 8th Sutol Conference, November 2016 Motivation III • IBM Domino is part of the game – source control enablement – headless Domino Designer • Domino works like small PaSS for ages – provides Directory, Storage, Security, Mail… services – simple app deployment model – Domino Billing features 8
  • 9. 8th Sutol Conference, November 2016 Demo application • Simple TODO app – React.js frontend – running in Domino nsf XPages app – using Domino data via REST calls • Built automatically – from GIT repository – tested by Selenium tests 9
  • 10. 8th Sutol Conference, November 2016 Dev workstation • Not all developers use same setup – OS differences – Projects being worked on – Personal preference • IDE/editor preference • Not all developers need to build whole project • Portable build tools to rescue • Single place of truth – SCM repository 10
  • 11. 8th Sutol Conference, November 2016 Toolbox • Transpilers/Pre-processors – from - syntax you want to write – to - syntax that machine can work with – (e.g. XPages to Java source code) • Linters/Checkers – analysis of code for potential problems – ensures coding + formatting standards 11
  • 12. 8th Sutol Conference, November 2016 Toolbox II • Package managers – download what you need – maintain dependencies • Builder/bundler tools – take assets you give them – produce runnable package 12
  • 13. 8th Sutol Conference, November 2016 Toolbox III • Task runners – run and organize build workflow steps • Dev servers – fast preview of your changes – integration with dev/debug tools • Automated test tools – verifies that all code still works 13
  • 14. 8th Sutol Conference, November 2016 Frameworks/Ecosystems • Tools that work nicely together • Specialized for some language or subject domain • JavaScript – NPM (runs on Node.js) • Java – Maven – Gradle 14
  • 15. 8th Sutol Conference, November 2016 Transpilers/Pre-processors - JS • Babel – ES2015 (== ES6) – TypeScript – Cleaner code, full browser compatibility 15
  • 16. 8th Sutol Conference, November 2016 Transpilers/Pre-processors - CSS • LESS • variables, mixins, functions – alternative - SASS 16
  • 17. 8th Sutol Conference, November 2016 Linters/Checkers • Javascript – ESLint • unused variables, tabs vs. spaces, semicolons … • rule sets for React.js – alternatives JSLint, JSHint, JSCS • Java – SonarQube Java analyzer – FindBugs • (not shown today) 17
  • 18. 8th Sutol Conference, November 2016 Builder/bundler tools - JavaScript • Webpack – produces bundle.js • includes CSS • + resources (e.g. fonts, images) – provides webpack-dev-server with hot-reload • alternatives – Browserify • and Gulp, Grunt tasks/plugins 18
  • 19. 8th Sutol Conference, November 2016 Never ending list • Probably 10 new tools were published during this session • For beginners – pick what you like after quick research – use it and learn it – change it once you understand differences 19
  • 20. 8th Sutol Conference, November 2016 Demo setup • One GIT repository • folder for Front-End project – React.js, Webpack, json-server – Bootstrap, LESS – publishes to WEB-INF folder of NSF ODP • folder for NSF On-Disk-Project • Visual Studio Code for Front-End dev • Separate VM as local Domino Dev server 20
  • 21. 8th Sutol Conference, November 2016 DEMO 21
  • 22. 8th Sutol Conference, November 2016 Summary Dev Machine • Develop and test React.js app – without Domino Designer or server • Produce front-end package – using webpack production build – (installed with npm) • Import it to Domino Designer – Team synchronization enablement – WEB-INF/dist folder • Put it on an XPage • View from Domino VM 22
  • 23. 8th Sutol Conference, November 2016 CI goal • Build front-end • Build NSF, incl. front-end • Deploy to test Domino server • Run Selenium tests – Firefox – Chrome 23
  • 24. 8th Sutol Conference, November 2016 Headless Domino Designer • Command line invocation of Domino Designer • Create NSF from On Disk Project • Enable/Disable plugins • New feature in 9.0.1 – http://www- 10.lotus.com/ldd/ddwiki.nsf/dx/Headless_Designer_W iki – notes.ini parameter - DESIGNER_AUTO_ENABLED=true – ID without password 24
  • 25. 8th Sutol Conference, November 2016 Headless Designer invocation • Manually – Single command command line • designer -RPARAMS -vmargs - Dcom.ibm.designer.cmd=[clean],[exit],[file name],[job name],[file path],[file name] – Command file • designer -RPARAMS -vmargs - Dcom.ibm.designer.cmd.file=[path to command file] 25
  • 26. 8th Sutol Conference, November 2016 Headless Designer wrappers • Maven – Christian Güdemann – Included in public Maven repository – Options to install Designer plugins • Ant – Cameron Gregor – Additional tasks for NSF manipulation – Uses Java Native Interface • Gradle - Martin Přádný – not maintained 26
  • 27. 8th Sutol Conference, November 2016 Headless designer - Maven <packaging>domino-nsf</packaging> <properties> <ddehd.odpdirectory> ${basedir}/on-disk-project </ddehd.odpdirectory> </properties> <build> <plugins> <plugin> <groupId>org.openntf.maven</groupId> <artifactId>headlessdesigner-maven-plugin</artifactId> <version>1.3.0</version> <extensions>true</extensions> </plugin> </plugins> </build> 27
  • 28. 8th Sutol Conference, November 2016 Why Maven • Standard in XPages community • OSGi friendly with Tycho plugin – IBM released Update Site on OpenNTF.org – IBM Domino Update Site for Build Management • Allows building Extension Libraries 28
  • 29. 8th Sutol Conference, November 2016 Automated tests • Unit testing – tests minimal runnable units – e.g. methods – rest of “world” replaced with mocks • Integration testing – test run with real subsystems, dbs etc. • UI testing – test driven using UI 29
  • 30. 8th Sutol Conference, November 2016 Selenium • Web browser automation (Firefox, Chrome, IE,…) • Selenium IDE (Firefox) – Record tests – Replay tests – Export (Java, C#, ruby, Python, ..) • Selenium server, grid – Run tests on remote machines 30
  • 31. 8th Sutol Conference, November 2016 Continuous integration server • Maintains central place which allows – anyone build the project – anyone see current build status – test application before build is publish – automatically publish application to production • Triggered – manually – automatically (after commit, periodically) 31
  • 32. 8th Sutol Conference, November 2016 CI software • Jenkins – free, open-source – many plugins – master/slave architecture • alternatives – TeamCity – Bamboo – Travis CI – (Bitnucket Pipelines, GitLab CI) 32
  • 33. 8th Sutol Conference, November 2016 Jenkins pipeline • Define build using script • Groovy based DSL • Allows – executor selection – parallelism – human interaction/approval • Pipeline file from SCM 33
  • 34. 8th Sutol Conference, November 2016 DEMO change flow 34
  • 35. 8th Sutol Conference, November 2016 DEMO + Let’s break it 35
  • 36. 8th Sutol Conference, November 2016 Jenkins Blue Ocean - Beta 36
  • 37. 8th Sutol Conference, November 2016 CI Summary • Build front-end – Webpack • Build NSF, incl. front-end – Maven running Domino Designer • Deploy to test Domino server – ANT task • Run Selenium tests – Firefox and Chrome – TestNG run with Maven 37
  • 38. 8th Sutol Conference, November 2016 Summary • Our setup allows – anyone with commit rights can modify the app • no need for environment setup • GIT and text editor are only needed tools – even notepad or vi – continually test with latest browsers – easily build multiple versions • e.g. stable and nightly 38
  • 39. 8th Sutol Conference, November 2016 Summary • Our setup guarantees – nsf is correctly compiled – code passes tests – latest version is available for everyone – in case of problem, people are notified quickly 39
  • 40. 8th Sutol Conference, November 2016 Questions 40
  • 41. 8th Sutol Conference, November 2016 Sample repository • https://bitbucket.org/pradnik/todoapp_full/b ranch/develop 41
  • 42. 8th Sutol Conference, November 2016 Resources • Csaba Kiss – Beyond XPages – http://xpagexplorer.org/reactjs-workflow/ • Stephan Wissel - Domino, Extlib, GRUNT, JSON and Yeoman – http://www.wissel.net/blog/d6plinks/SHWL- A3QHEL • NotesIn9 – Patrick Kwinten – Using Grunt With XPages – http://www.notesin9.com/2016/10/10/notesin9- 202-using-grunt-with-xpages/ 42