Skip to content

Common platform builds: enhance CI to build in nested docker images #393

@maxgolov

Description

@maxgolov

@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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions