-
Notifications
You must be signed in to change notification settings - Fork 512
Description
@lalitb suggested this approach during code review.
Rather than targeting 'legacy' or 'latest' compiler and a default set of GitHub action images, we can implement better (and faster) test coverage with the following CI loop in nested Docker images:
| OS | Compiler |
|---|---|
| Ubuntu 14.04 | gcc-4.8 |
| Ubuntu 16.04 | gcc-5.3.1 |
| Ubuntu 18.04 | gcc-7.4.0 |
| Ubuntu 20.04 | gcc-9.x.x (and gcc-10.x.x) |
Draft PR that adds these containers. But does not yet add these to the CI yet is here: #377
Above configurations are tested and known to work, passing all core tests. We can also add RHEL and CentOS images (yum / rpm-based distros) as well. The aim is to iteratively build and run these Docker images on a GitHub Actions Linux runner, using GitHub cache (up to 5GB per repo) - to save the cached images. This GitHub action seems to be implementing what's needed:
https://github.com/marketplace/actions/build-docker-images-using-cache
Linux docker allows for nested containers: running docker container in GitHub action (which itself is run in docker container).
We can organize a build farm for up to 10 popular Linux repos using one set of build tools: tools/build.sh
Anyone can later reuse this effort to build OpenTelemetry C++ SDK PPA for Ubuntu or alike. Personal Package Archives (PPA) allow you to upload Ubuntu source packages to be built and published as an apt repository by Launchpad.