Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
CI: Replace Travis-CI with Azure Pipelines #458
Unfortunately Travis-CI is no longer able to build LibrePCB on MacOS because we reached the maximum build time of 50 minutes. So we need another CI service for the MacOS builds, and Azure Pipelines looks very promising (thanks for the hint @rnestler
To avoid having three different CI systems, I also migrated Linux builds from Travis-CI to Azure Pipelines, so we no longer need Travis-CI at all. Some time we can probably also replace AppVeyor with Azure Pipelines, but this migration requires much more effort so I keep AppVeyor for the moment.
One advantage of Azure Pipelines is that on Linux we can use custom Docker containers, which speeds up builds. I pushed some initial images to Docker Hub and I will create a new repository with the Dockerfiles soon (it's still work in progress).
Btw, I also tried Cirrus CI - it's also very promising (provides Linux, MacOS, Windows and even FreeBSD for free). It has some advantages compared to Azure Pipelines, but also some disadvantages. Due to more limited resources and some strange issues I had with MacOS builds, I think it's better to go with Azure Pipelines for the moment.
Also we should probably build and update the Docker images at a regular interval.
True -> fixed in my comment above.
That docker image was intended for (potential) users of LibrePCB to allow trying out LibrePCB without compiling it by yourself. This was two years ago, where we didn't have official binary releases. In addition, there was an additional tag to provide a complete environment for development, and one tag which was intended for CI but was never used.
But I'm not really happy with mixing three different use-cases into one docker image, having separate docker images is IMHO much more clean and easier to maintain. I just wonder whether I should name the image for CI
In addition, I no longer see the need for providing a Docker image containing LibrePCB, QtCreator etc. GUI applications are a pain with Docker, and now there are much better deployment variants of LibrePCB available (installer, AppImage, Flatpak, AUR, ...). And QtCreator is available on basically every Linux distro anyway. So I wonder if I should just remove the