Anyone successfully using version control and CI/CD for automation in your company?

We're dabbling with the idea of versioning our projects by using either Github, Bitbucket and Azure DevOps as our repo service by referencing this article.

I wanted to know if there are any real cases of Git, version control and CI/CD pipelines out there in production. Have any of you successfully implemented it with client projects? What was the result? And how did you accomplish it? Also if you have any recommendation on which service works best please feel free to share. Thanks in advance!

At my company, we're not using CI/CD with Ignition yet, but we've been using Git for over a year now. It's absolutely fantastic to have a SCADA project where you can use Git and see exactly what was changed. Here are a few important points based on our experience:

  • I had to create a pretty complex .gitignore file to exclude all the unnecessary folders and keep only the ones for our main project and a custom theme we created.
  • Inside each view, there's a resource.json file that contains a hash calculated based on view.json and thumbnail.png. Just opening the view changes this hash, so Git sees it as a modification. You always have to discard those changes to avoid cluttering your version history.
  • Definitely use a visual tool like VS Code to manage your version control — it helps a lot.
  • Unfortunately, tags are stored in an SQLite database, which makes it hard to track changes. In my case, I have tens of thousands of tags, and exporting them to a file is just not practical. So I created a folder in the project where I keep version control of the UDTs separately from Ignition.
  • Another tricky part is the image database — saved images are stored in a database, which makes them hard to manage.
  • One of the best things about using Git is the ability to work concurrently on different developments. I highly recommend using the Git Flow methodology and always doing a rebase when wrapping up a feature.

I have high hopes for version 8.3, which promises to make Ignition fully ready for proper version control — really looking forward to seeing how that evolves.

5 Likes