It's been a while since this question was asked, but we are currently grappling with this issue. DevOps means Development (ability to version control all changes to Forms and Workflows in a controlled manner and see complete change history) and Operations (ability to deploy a specific development version to test and then to production in a controlled manner without introducing unintended changes).
We are storing the XML output for Forms Processes and the WFI (XML) output for Workflows in GitHub. Unfortunately, LF has a somewhat dynamic internal ID scheme so we find many differences between versions that are just renumbered IDs. LF forms are also stored as a single line of XML which requires us to perform an extra step of formatting before commiting to GitHub. LF Forms also duplicates data as both XML and JSON, with long line of JSON that are hard to compare.
Workflows store information about the Forms they are connected to which means they can change even when no changes to the actual Workflow occur.
When it's time to deploy development to test or prod, we import the XML file. This works pretty well with the built-in wizard, but there are still a lot of things that we have to remember to manually update after import.
It would be great if we could export a single, formatted XML or JSON file that contained the entire Forms process and associated Workflows with unchanging GUIDS as IDs. Currently, we have to store DEV and PROD file versions separately. We have a somewhat complex Forms process with multiple workflows and it generally takes us up to an hour to deploy to PROD with multiple participants watching to make sure we don't miss anything.
If anyone has any tips on how to handle this better, I'd love to hear it.