Continuing the discussion from another thread…
This is something I wanted to talk about for a while.
I’ve also used Azure Devops for my extensions that includes Ruby C extensions.
I have my source code on GitHub and I only use Azure Devops to build - I don’t host the repo at Azure.
So far I’ve used the UI to configure the CI/CD. The drawback with that, I find, is that when I make changes to my source code that require build changes I need to perform separate changes on Azure. And if I then had to roll back something in my source I’d have to make similar changes on Azure again.
I seems to be it’s be better to have the Azure config stored along with the source code. I’ve yet had time to dive into Azure Devops to see how/if that can be done.
But I have seen that since Microsoft acquired GitHub and introduced CI/CD services it looks to be backed by Azure as well. And the examples indicate that you define the config in YAML. Might be the solution I’m looking for. But I need to compare the differences between CI/CD on Azure Devops directly vs GitHub’s variant of this.
Anyway - the nice thing with these services, including AppVeyor etc, is that they offer basic free hosted tiers. And they include Windows/macOS and linux.
Previously I built my Ruby C extensions manually, which meant copying files across from my main Windows machine and my mac build machine. Now I just need to kick of a CI/CD build and wait a few minutes before I get the RBZ with all files and binaries included. For Vertex Tools and SUbD it’s extra nice as it will also perform the npm
tasks that is required to build the webdialog content.
One drawback is that these free hosted machines doesn’t come with SketchUp installed, so you cannot automate running TestUp ruby tests. That’s something I’m still looking into. I’m considering getting a dedicated build machine where I self-host agents for Azure Devops or AppVeyor with a custom config that includes SketchUp and TestUp.
I’ve also had good use of using CI/CD machines as it has detected certain hard coded paths or assumed too much about the host computer. Having the build running on a separate machines makes it easier to pick up issues like that.
I’m curious what your own workflow for building and deploying your SketchUp extensions are? (Mostly for when the extension is more than just zipping up Ruby files.)