Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] multi-platform scheduled builds #1165

Closed
wants to merge 5 commits into from

Conversation

esigo
Copy link
Member

@esigo esigo commented Dec 28, 2021

This PR provides multi-platform scheduled builds, so we can test build on different CPU architectures e.g. arm64 or OS versions.

example build command (building with gcc 8.5):
docker build --build-arg BASE_IMAGE=gcc:8.5 -f ../docker/ubuntuLatest/Dockerfile . -t otel-cpp

Changes

uses setup_grpc.sh and setup_thrift.sh scripts in Dockerfilein multiple stages so that Docker can build the stages in parallel.
The ARM build can take up to 3 hours because of the emulation.
If the image built with the scheduled job, pushed to some registry, it can be directly used on ARM machines as well.
As the build using this method is very slow, a cron job is used.

For significant contributions please make sure you have completed the following items:

  • CHANGELOG.md updated for non-trivial changes
  • Unit tests have been added
  • Changes in public API reviewed

@codecov
Copy link

codecov bot commented Dec 28, 2021

Codecov Report

Merging #1165 (e96606b) into main (2e9b7a1) will decrease coverage by 0.18%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1165      +/-   ##
==========================================
- Coverage   91.55%   91.37%   -0.17%     
==========================================
  Files         217      221       +4     
  Lines        7922     8247     +325     
==========================================
+ Hits         7252     7535     +283     
- Misses        670      712      +42     
Impacted Files Coverage Δ
...telemetry/sdk/metrics/state/async_metric_storage.h 83.34% <0.00%> (-9.52%) ⬇️
...k/src/metrics/aggregation/histogram_aggregation.cc 83.79% <0.00%> (-7.39%) ⬇️
...k/src/metrics/aggregation/lastvalue_aggregation.cc 35.49% <0.00%> (-3.80%) ⬇️
sdk/src/metrics/meter_provider.cc 75.87% <0.00%> (-1.55%) ⬇️
...etry/sdk/metrics/aggregation/default_aggregation.h 33.97% <0.00%> (-1.33%) ⬇️
sdk/test/metrics/async_metric_storage_test.cc 89.59% <0.00%> (-1.32%) ⬇️
sdk/test/metrics/metric_reader_test.cc 86.67% <0.00%> (-0.83%) ⬇️
sdk/test/metrics/meter_provider_sdk_test.cc 77.78% <0.00%> (-0.60%) ⬇️
sdk/src/metrics/aggregation/sum_aggregation.cc 65.46% <0.00%> (-0.58%) ⬇️
sdk/test/metrics/view_registry_test.cc 100.00% <0.00%> (ø)
... and 16 more

@owent
Copy link
Member

owent commented Jan 14, 2022

Should we build our development docker image instead install and build dependencies every time?It may reduce a lot time to all CI jobs.

@esigo
Copy link
Member Author

esigo commented Jan 14, 2022

Should we build our development docker image instead install and build dependencies every time?It may reduce a lot time to all CI jobs.

Thanks, yeah I totally agree. The question is where to host. We discussed this in one of the meetings and there is no plan to host docker images.
The PR relies on caching though, those gRPC and thrift layers will be cached and the subsequent builds will have ok speed.

@lalitb lalitb reopened this May 4, 2022
@github-actions github-actions bot closed this May 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants