[CMAKE] Add thirdparty install cmake project and install bash script#3486
Conversation
✅ Deploy Preview for opentelemetry-cpp-api-docs canceled.
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3486 +/- ##
=======================================
Coverage 89.93% 89.93%
=======================================
Files 219 219
Lines 7039 7039
=======================================
Hits 6330 6330
Misses 709 709 🚀 New features to boost your workflow:
|
… script to replace the setup_grpc, install_abseil, setup_googletest, and install_protobuf scripts in ci jobs. Add git tag files for third-party minimum supported, stable, and latest git tags
…lect individual third party packages for install
212fdd6 to
23f4d8a
Compare
… tags are set before adding external projects from github repositories
| USER devuser | ||
|
|
||
| WORKDIR /workspaces/opentelemetry-cpp | ||
| RUN cd /opt && bash ci/install_thirdparty.sh --install-dir /home/devuser/third-party/install-stable --tags-file install/cmake/third_party_stable |
There was a problem hiding this comment.
Installing the dependencies with user privileges and under the /home/devuser directory then setting CMAKE_PREFIX_PATH makes it easier for developers to change/test versions of dependencies in the devcontainer.
| cmake_gcc_maintainer_sync_test: | ||
| name: CMake gcc 14 (maintainer mode, sync) | ||
| runs-on: ubuntu-24.04 | ||
| env: |
There was a problem hiding this comment.
Moving the environment variables to the job level ensures the dependencies and otel-cpp are built with the same c++ standard and compiler.
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | ||
| - name: setup | ||
| run: sudo apt remove needrestart && sudo ./ci/install_format_tools.sh #refer: https://github.com/actions/runner-images/issues/9937 | ||
| run: sudo ./ci/install_format_tools.sh |
There was a problem hiding this comment.
The needrestart package no longer needs to be removed. Opportunistic cleanup.
| @@ -0,0 +1,18 @@ | |||
| # Copyright The OpenTelemetry Authors | |||
There was a problem hiding this comment.
There are four files now with git tags for third-party repositories. The intent is to move all third party versions out of github workflow yml files into these tag files.
third_party_releaseinstall/cmake/third_party_minimuminstall/cmake/third_party_stableinstall/cmake/third_party_latest
In the future we can consider maintaining third_party_release as the "latest" versions while keeping the third_party_minimum version file to test the range supported. Then it seems reasonable to remove the "stable" and "latest" files.
|
|
||
| gRPC=v1.49.2 | ||
| abseil=20240116.1 | ||
| abseil=20220623.2 |
There was a problem hiding this comment.
Updated this file to add the missing dependencies. The intent is to not upgrade anything in this file with this PR.
- Git tags for curl and zlib were selected with no strong rationale (interested in feedback on what these should be).
- Git tags for abseil and protobuf were selected based on the grpc submodule versions at the grpc tag.
The third-party package installs for ci testing have a few challenges/limitations:
third_party_release.The goal of this PR is to make managing/maintaining third party dependencies for CI testing easier.
Changes
opentelemetry-cpp-thirdparty-installCMake project and adds tags files for minimum supported, "stable", and latest versions.For significant contributions please make sure you have completed the following items:
CHANGELOG.mdupdated for non-trivial changes