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]
Parents
  • Just to conclude as an answer:

    • Storing page changes in source control, when we using devmode Verint instance is possible with the workaround - we need to export pages data by using theme export, extract all page data from exported file and then put this data in coresponding files in \filestorage\factorydefaultpages\{myThemeId}\{themeTypeId}.xml
    • Automated deploying of theme trough Theme in-process API is not possible currently due immaturity if this API, but possibly by using CFS in-process API which will be equivalent of manipulating CFS directly
    • Automated deploy of theme and widgets trough export/import fearure is possible with headless Chrome, with condition that non-theme widgets should be linked somewhere in theme pages or marked as theme widget, also after automated theme import - headless Chrome script should also click to publish staged theme changes
    • Automated deploy of theme and widgets trough file storage is possible, but after commiting changes to prod env, we also need to run headless Chrome script to reset UI cache and revert any custom theme changes


    Thanks Ben :)

Reply
  • Just to conclude as an answer:

    • Storing page changes in source control, when we using devmode Verint instance is possible with the workaround - we need to export pages data by using theme export, extract all page data from exported file and then put this data in coresponding files in \filestorage\factorydefaultpages\{myThemeId}\{themeTypeId}.xml
    • Automated deploying of theme trough Theme in-process API is not possible currently due immaturity if this API, but possibly by using CFS in-process API which will be equivalent of manipulating CFS directly
    • Automated deploy of theme and widgets trough export/import fearure is possible with headless Chrome, with condition that non-theme widgets should be linked somewhere in theme pages or marked as theme widget, also after automated theme import - headless Chrome script should also click to publish staged theme changes
    • Automated deploy of theme and widgets trough file storage is possible, but after commiting changes to prod env, we also need to run headless Chrome script to reset UI cache and revert any custom theme changes


    Thanks Ben :)

Children
No Data