![]() However, when we tried to build Mixxx with our old archive of dependencies on GitHub Actions, it would not build because GitHub Actions no longer had a version of XCode old enough to support the macOS 10.13 SDK which was used on our old macOS build server. Getting CMake correctly building macOS packages took more than a week, but that was only the beginning of the journey.Ī great aspect of using GitHub Actions for our builds is that GitHub does the work of keeping the operating systems and build tools in the virtual machine images up to date for us. Since none of our core developers use macOS and macOS is cumbersome to run in virtual machines, one of our core developers had to borrow an old Macbook Air from a friend to do this work. Although CMake comes with tools to make macOS application bundle packages (the files users download and drag and drop to their /Applications folder), they are sorely lacking and badly documented. Since we were switching to a whole new build server setup, we decided to get the new system working with CMake rather than keep using the old SCons build system. This also makes it much easier for developers to test changes on operating systems they do not use personally, which is very helpful because all of our core development team runs Linux. ![]() This allows users to test Mixxx before we merge changes to the code without the users needing to know how to build Mixxx. Moreover, GitHub Actions hosts the artifacts from every build, even on pull requests. For a busy project with little budget, that is super helpful. While we are wary of being dependent on services that are powered by proprietary software and have other serious issues, no other service provides comparable computing resources as GitHub Actions does for free. The 6 hour time limit for jobs is important because Mixxx's dependencies take about 4 hours for a full build without a cache. GitHub Actions allows us to run a maximum of 20 concurrent builds or 5 concurrent macOS builds with a 6 hour time limit for jobs. It turned out that GitHub Actions met all our needs with support for macOS, Windows, and Ubuntu. When Travis announced tighter restrictions on their free service, we decided to evaluate other options. Together with the slow, old SCons build system, these CI builds hit the time limits on the free tiers so often or took so long to run that we often ignored them. Also, we were using the free options for these services. ![]() However, we were not uploading the builds from AppVeyor or Travis to our file server at. We were already using AppVeyor for Windows and Travis for macOS & Linux continuous integration to build each commit (change to the code) to catch bugs early. So, we decided to not bother fixing the old build server and instead move our builds to a hosted service. That was far from the first time our self-hosted build servers went offline and we got tired of continually troubleshooting these self-hosted servers. However, shortly after we announced 2.3 beta, the self-hosted Jenkins Windows build server stopped working. When we released 2.3 beta, we planned to keep using the old SCons build system for 2.3 on the servers that make our official builds. We introduced support for the CMake build system with the release of 2.3 beta, but there were still rough edges at that time, particularly for building Mixxx on Windows and macOS. ![]() "Building" software is the process of transforming the code that we write into an executable file that you can run on your computer. Additionally, we had to do a ton of work for the macOS and Windows builds. We have moved this website to the Pelican static site generator and moved the forums to Discourse. Well, we have been very busy the past few months building a more sustainable technical infrastructure for the Mixxx project. Since we published Mixxx 2.3 beta in June 2020, you may have been wondering what has taken so long to get the 2.3.0 release out. Improving the Mixxx developer experience with maintainable build infrastructure ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |