we have a build server, and we control it over IDE scripting. It’s integerated into our CI/CD Pipeline and is called over Gitlab runners.
This runs okayish, but has some weaknesses we want to get rid of, so I have some questions:
- Is it possible to have a “headless” IDE version? Where only the compiler works, not the UI or so?
- Can one develop a CLI for controlling the IDE more than the clunky scripting commands and open arguments?
- To build a project, you have to sign into Xojo with your account, is that automatable?
- When a build is complete, is there a way to determine that? Currently the job, which tells the IDE to open, waits two minutes and the job which makes the IDE build the app has to wait one hour. It fetches then until the new version is in the right folder and continues.
What we have in mind:
- Building a docker image with the current IDE in it, Git and other stuff, running on a Linux.
- When building, it shall create a new job or Pod in our Kubernetes cluster, start the server, run the IDE, login with our account and build the latest version which is pulled over Git.
- After the build we want to kill the docker container.
Why we want to change this:
- because to have full automated CI/CD pipeline we have to have an always-on computer.
- everytime something on the computer changes a bit, the pipeline could break and we have to fix it manually
- everytime the pipeline fails, because of reasons, we have to reset some things on the build server, like closing xojo manually and so
- running these steps on our Kubernetes cluster gives the ability to put a huge load of cpu into the build process to speed it up (it takes like 20-30 Minutes currently to build the app).
Has one of you some recommendations, is there a way to achieve these changes?