Skip to content

[WIP] multi-platform scheduled builds#1165

Closed
esigo wants to merge 5 commits intoopen-telemetry:mainfrom
esigo:multiplatform-builds
Closed

[WIP] multi-platform scheduled builds#1165
esigo wants to merge 5 commits intoopen-telemetry:mainfrom
esigo:multiplatform-builds

Conversation

@esigo
Copy link
Copy Markdown
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
Copy Markdown

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
Copy Markdown
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
Copy Markdown
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