Deployment automation of factory default themes that were created trough developer mode

Hi, 

We trying to implement full CI/CD workflow for our current Verint 11.x development, that includes:

  • Storing factory default widgets code and factory default themes code in a git source controls
  • Automatically package and deploy widget and theme releases into a stage and prod environments

What we achieved for now:

  • White check mark Widgets source control is implemented through "Verint Development Mode" and "Factory Default Widget Provider", all widgets source control now could be stored in our git repository
  • White check mark Widget packaging from git and deployment is implemented through "FactoryDefaultWidgetFileManifestUpdater" example https://github.com/Telligent/Widget-Source-Management-Sample
  • White check mark Theme source control is implemented  through "Verint Development Mode" + creation of Social theme copy, all theme files now could be stored in our git repository
  • X Theme packaging from git and deployment is NOT implemented because
    • plan A: was to deploy factory default theme in same way as factory default widgets is deployed trough Widget-Source-Management-Sample, but we have no proper example of packaging factory default theme files into DLL and no proper example of manipulating theme files through in-process API
    • plan B: was to automate theme import/export UI through headless Chrome automation, but it seems too risky and unreliable for us 
    • plan C: was to copy-paste changes from themefiles/d and themefiles/fd directory from git repository directly into on-prem Verint instance filestorage, and this also seems risky for us because it was never officially approved to be safe way by Verint team, also there undocumented behavior when non-devmode Verint instance could store some of theme files in themefiles/f, and this /f directory is not properly documented, and just copying /fd and /d directories is not always working, so we currently dropped this plan Slight smile

The question:

While we were digging for a possible solution we discovered that theme, in same way as widgets, have it's own in-process API for manipulating theme files, e.g.:

We want to implement something similar to the Widget-Source-Management-Sample, to package factory default theme files into DLL embedded resource and then add them to Verint instance during plugin installation, but we didn't find any code examples for these APIs.

Question Do you have code examples for these API or maybe you have something similar to Widget-Source-Management-Sample that could be applied for themes?

Question Or if there more proper solution for this - could you tell us about it?



minor text fixes
[edited by: Eugene Shulga at 4:23 PM (GMT 0) on Wed, Mar 10 2021]