At youEngineering we use Gitlab for our internally developed products. For both a source code repository to maintain large amounts of source code, and as a CI/CD (Continuous Integration/Continuous Delivery) platform. With a CI/CD platform, code changes can be delivered in a more frequent and reliable manner. Especially in larger projects, the runtimes of pipelines can become very long very quickly. The consequence: the team loses agility and is prevented from making live updates quickly. First, you have to wait until the build pipeline runs through a feature branch. This is usually followed by a test pipeline. Before you know it half an hour has passed before the branch has been fully merged. In our Team camp 2022, due to this issue, a team set itself the task of researching possibilities that could improve both the time spent per task and the quality of the subsequent results. The team wanted to achieve this primarily through two concrete measures:
Improving the build pipelines: On the one hand, we want to reduce the runtime from build start to build end so that developers can test and update new app versions in less time. On the other hand, the absolute runtime of the builds should also be reduced in order to use the provided infrastructure as little as possible.
Integration of useful Gitlab features: Furthermore, we want to check which features of Gitlab are interesting for us, as they can provide added value in quality with minimal effort. Primarily we are interested in:
Browser Performance Testing
and
Load Performance Testing
But what is Gitlab anyway? Gitlab is an open-source coding platform for software projects. There, users can store large amounts of code online, allowing one user to share code with multiple people at the same time. In addition, Gitlab offers tools such as issue tracking, and version management, among other code management capabilities.
The results of the team camp Gitlab project
By using Gitlab for a project, we were able to reduce the build time by about 20% (from 17 minutes to about 14 minutes). We were able to save the most time by building different subprojects simultaneously and splitting up the frontend and backend builds. Without Gitlab, subprojects can only be worked on one after the other. The two aforementioned features (Browser Performance Testing and Load Performance Testing), however, could not convince us. In the current setup, they cannot be used to save time or increase quality.
Outlook and additional uses of Gitlab
In our projects, we have been able to reduce build times significantly using Gitlab. We definitely see further potential in the system and would like to be able to reduce our build time in the future, in the areas of caching and browser/load testing, by another 20%.
Post-camp success
Based on the insights from our 2022 Team Camp and other ideas resulting from the work done there, we were actually able to bring the total build time of our project under 10 minutes!