-
Notifications
You must be signed in to change notification settings - Fork 497
[CMAKE] Add thirdparty install cmake project and install bash script #3486
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
[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
COPY ./.devcontainer/customize_container.sh /tmp/opentelemetry_cpp/devcontainer/customize_container.sh | ||
RUN /tmp/opentelemetry_cpp/devcontainer/customize_container.sh | ||
RUN apt install -y npm && npm install -g [email protected] | ||
|
||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
@@ -84,32 +82,25 @@ jobs: | |||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moving the environment variables to the job level ensures the dependencies and otel-cpp are built with the same c++ standard and compiler.
@@ -951,7 +911,7 @@ jobs: | |||
|
|||
- 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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_release
install/cmake/third_party_minimum
install/cmake/third_party_stable
install/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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work, LGTM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, nice work.
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-install
CMake 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.md
updated for non-trivial changes