@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.
@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:
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
RHELandCentOSimages (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.shAnyone 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.