Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
production
-
None
Description
Provisioning shouldn't build software.
It used to be the case that provisioning was all about configuration and installation (see QTQAINFRA-2496) but it regressed at some point and since then more and more compilations are being added.
- It takes long and consumes resources that "Provisioning" VMs are not meant to have.
- Re-building again and again the same ffmpeg (or anything else) is pointless: we are not testing ffmpeg, we are not updating it on every commit.
There is one positive with building dependencies in provisioning:
- The build process of 3rd party software is well documented in our git.
Instead pre-compiled binaries should be installed.
- Ideally binaries from upstream, mirrored in our file server.
- If not possible, they should be compiled manually once and then stored in our file server, with their release version in the filename (or the git SHA if they come from version control).
- The build process should still be documented, so that it can be repeated when the dependency gets updated. Maybe as a commented-out section in the shell script that downloads and installs the binaries.
Suggestion for moving forward
- Commit these guidelines in a README file under qt5.git/coin/provisioning
- Provisioning maintainer should Review -1 any new compilation of 3rd party software
- We gradually move every existing compilations out, moving the binaries into the file server.
Current big compilations in Provisioning
for Ubuntu 22.04
- vcpkg-tool
- openssl (via vcpkg)
- protobuf
- grpc
- ffmpeg
for Windows 11 23H2
- 90-exceutequeueditems.ps1
- ffmpeg for mingw
- ffmpeg for msvc
- ffmpeg for llvm-mingw
- ffmpeg for android-arm
- protobuf for g++
- protobuf for clang++
- protobuf for cl
- gRPC for cl