Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Replace Travis-CI with Azure Pipelines #458

Merged
merged 3 commits into from Jun 6, 2019

Conversation

@ubruhin
Copy link
Member

commented Jun 1, 2019

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 馃槈). They provide a lot of free Linux, MacOS and Windows resources for open source projects 馃帀

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.

@ubruhin ubruhin self-assigned this Jun 1, 2019

@ubruhin ubruhin force-pushed the azure-pipelines branch 5 times, most recently from 5629381 to e3e3bd8 Jun 1, 2019

@ubruhin ubruhin force-pushed the azure-pipelines branch 4 times, most recently from c567454 to 9d1d18b Jun 1, 2019

@rnestler

This comment has been minimized.

Copy link
Member

commented Jun 3, 2019

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).

The link is broken for me, https://hub.docker.com/r/librepcb/librepcb-dev works.
Also there already was a librepcb image on Docker hub: https://hub.docker.com/r/librepcb/librepcb. Was it not usable?

Also we should probably build and update the Docker images at a regular interval.

@ubruhin ubruhin force-pushed the azure-pipelines branch from 9d1d18b to 4d7504a Jun 3, 2019

@ubruhin

This comment has been minimized.

Copy link
Member Author

commented Jun 3, 2019

The link is broken for me, https://hub.docker.com/r/librepcb/librepcb-dev works.

True -> fixed in my comment above.

Also there already was a librepcb image on Docker hub: https://hub.docker.com/r/librepcb/librepcb. Was it not usable?

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 librepcb-dev or librepcb-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 librepcb/librepcb docker image (it's not maintained anyway for 2 years).

@ubruhin ubruhin force-pushed the azure-pipelines branch from 4d7504a to 4fc4154 Jun 4, 2019

@ubruhin ubruhin marked this pull request as ready for review Jun 4, 2019

@ubruhin

This comment has been minimized.

Copy link
Member Author

commented Jun 4, 2019

Should be ready now. Dockerfiles are here: https://github.com/LibrePCB/docker-librepcb-dev

Show resolved Hide resolved ci/azure-jobs-doxygen.yml
Show resolved Hide resolved ci/azure-jobs-linux.yml
@rnestler

This comment has been minimized.

Copy link
Member

commented Jun 6, 2019

So I wonder if I should just remove the librepcb/librepcb docker image (it's not maintained anyway for 2 years).

We should probably at least mark it deprecated.

@ubruhin

This comment has been minimized.

Copy link
Member Author

commented Jun 6, 2019

We should probably at least mark it deprecated.

Done.

Thanks for reviewing :)

@ubruhin ubruhin merged commit 4b2fe09 into master Jun 6, 2019

10 checks passed

LibrePCB Build #20190604.4 succeeded
Details
LibrePCB (Doxygen) Doxygen succeeded
Details
LibrePCB (Linux Ubuntu_1404_GCC) Linux Ubuntu_1404_GCC succeeded
Details
LibrePCB (Linux Ubuntu_1604_GCC) Linux Ubuntu_1604_GCC succeeded
Details
LibrePCB (Linux Ubuntu_1604_Qt_5_12_3_GCC) Linux Ubuntu_1604_Qt_5_12_3_GCC succeeded
Details
LibrePCB (Linux Ubuntu_1804_Clang) Linux Ubuntu_1804_Clang succeeded
Details
LibrePCB (Stylecheck) Stylecheck succeeded
Details
LibrePCB (macOS) macOS succeeded
Details
continuous-integration/appveyor/branch AppVeyor build succeeded
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details

@ubruhin ubruhin deleted the azure-pipelines branch Jun 6, 2019

ubruhin added a commit that referenced this pull request Jul 8, 2019

Merge pull request #458 from LibrePCB/azure-pipelines
CI: Replace Travis-CI with Azure Pipelines
(cherry picked from commit 4b2fe09)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can鈥檛 perform that action at this time.