Skip to content

Commit d772756

Browse files
committed
added function based version api
2 parents 7acb584 + c2a9397 commit d772756

File tree

82 files changed

+3827
-379
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3827
-379
lines changed

.devcontainer/Dockerfile.conan

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Copyright The OpenTelemetry Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
FROM ubuntu:24.04
4+
5+
RUN apt update && apt install -y \
6+
build-essential \
7+
ca-certificates \
8+
wget \
9+
cmake \
10+
git \
11+
sudo \
12+
nano \
13+
pkg-config \
14+
ninja-build \
15+
clang-format \
16+
clang-tidy \
17+
autoconf \
18+
automake \
19+
libtool \
20+
python3-pip
21+
22+
RUN pip install conan --break-system-packages
23+
24+
ARG USER_UID=1000
25+
ARG USER_GID=1000
26+
ARG USER_NAME=devuser
27+
ENV USER_NAME=devuser
28+
ENV USER_UID=${USER_UID}
29+
ENV USER_GID=${USER_GID}
30+
ENV INSTALL_PACKAGES=
31+
ENV IS_CONTAINER_BUILD=true
32+
33+
COPY ./.devcontainer/customize_container.sh /tmp/opentelemetry_cpp/devcontainer/customize_container.sh
34+
RUN /tmp/opentelemetry_cpp/devcontainer/customize_container.sh
35+
USER devuser
36+
37+
RUN conan profile detect --force
38+
39+
ARG CONAN_FILE=conanfile_stable.txt
40+
ARG CONAN_BUILD_TYPE=Debug
41+
ARG CXX_STANDARD=17
42+
WORKDIR /home/devuser/conan
43+
COPY ./install/conan/ .
44+
45+
RUN conan install ./${CONAN_FILE} --build=missing -s build_type=${CONAN_BUILD_TYPE}
46+
ENV CMAKE_TOOLCHAIN_FILE=/home/devuser/conan/build/${CONAN_BUILD_TYPE}/generators/conan_toolchain.cmake
47+
ENV CXX_STANDARD=${CXX_STANDARD}
48+
ENV BUILD_TYPE=${CONAN_BUILD_TYPE}
49+
ENV CONAN_FILE=${CONAN_FILE}
50+
51+
WORKDIR /workspaces/opentelemetry-cpp
52+
53+
ENTRYPOINT []
54+
55+
CMD ["/bin/bash"]

.github/workflows/ci.yml

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -302,24 +302,6 @@ jobs:
302302
run: |
303303
./ci/do_ci.sh cmake.with_async_export.test
304304
305-
# cmake_abseil_stl_test:
306-
# name: CMake test (with abseil)
307-
# runs-on: ubuntu-24.04
308-
# steps:
309-
# - uses: actions/checkout@v4
310-
# with:
311-
# submodules: 'recursive'
312-
# - name: setup
313-
# run: |
314-
315-
# sudo -E ./ci/setup_ci_environment.sh
316-
# sudo -E ./ci/setup_cmake.sh
317-
# sudo -E ./ci/setup_googletest.sh
318-
# - name: run cmake tests (enable abseil-cpp)
319-
# run: |
320-
# sudo ./ci/install_abseil.sh
321-
# ./ci/do_ci.sh cmake.abseil.test
322-
323305
cmake_opentracing_shim_test:
324306
name: CMake test (with opentracing-shim)
325307
runs-on: ubuntu-latest
@@ -558,26 +540,6 @@ jobs:
558540
sudo ./ci/setup_grpc.sh -T
559541
./ci/do_ci.sh cmake.exporter.otprotocol.shared_libs.with_static_grpc.test
560542
561-
# cmake_install_test:
562-
# name: CMake install test (with abseil)
563-
# runs-on: ubuntu-24.04
564-
# steps:
565-
# - uses: actions/checkout@v4
566-
# with:
567-
# submodules: 'recursive'
568-
# - name: setup
569-
# run: |
570-
# sudo -E ./ci/setup_ci_environment.sh
571-
# sudo -E ./ci/setup_cmake.sh
572-
# sudo -E ./ci/setup_googletest.sh
573-
# - name: run cmake install (with abseil)
574-
# run: |
575-
# sudo ./ci/install_abseil.sh
576-
# ./ci/do_ci.sh cmake.install.test
577-
# - name: verify packages
578-
# run: |
579-
# ./ci/verify_packages.sh
580-
581543
plugin_test:
582544
name: Plugin -> CMake
583545
runs-on: ubuntu-latest
Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
name: CMake Install Tests
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ main ]
7+
pull_request:
8+
branches: [ main ]
9+
10+
jobs:
11+
windows_2022_vcpkg:
12+
name: Windows 2022 vcpkg cxx17 (static libs - dll)
13+
runs-on: windows-2022
14+
env:
15+
CXX_STANDARD: '17'
16+
steps:
17+
- uses: actions/checkout@v4
18+
with:
19+
submodules: 'recursive'
20+
- name: Build dependencies with vcpkg submodule
21+
run: |
22+
./ci/setup_cmake.ps1
23+
./ci/setup_windows_ci_environment.ps1
24+
- name: Run Tests
25+
run: ./ci/do_ci.ps1 cmake.install.test
26+
- name: Run DLL Tests
27+
run: ./ci/do_ci.ps1 cmake.dll.install.test
28+
29+
windows_2019_vcpkg:
30+
name: Windows 2019 vcpkg cxx14 (static libs)
31+
runs-on: windows-2019
32+
env:
33+
CXX_STANDARD: '14'
34+
steps:
35+
- uses: actions/checkout@v4
36+
with:
37+
submodules: 'recursive'
38+
- name: Build dependencies with vcpkg submodule
39+
run: |
40+
./ci/setup_cmake.ps1
41+
./ci/setup_windows_ci_environment.ps1
42+
- name: Run Tests
43+
run: ./ci/do_ci.ps1 cmake.install.test
44+
45+
ubuntu_2404_system_packages:
46+
name: Ubuntu 24.04 apt packages cxx17 (static libs - shared libs)
47+
runs-on: ubuntu-24.04
48+
env:
49+
INSTALL_TEST_DIR: '/home/runner/install_test'
50+
CXX_STANDARD: '17'
51+
BUILD_TYPE: 'Debug'
52+
steps:
53+
- uses: actions/checkout@v4
54+
with:
55+
submodules: 'recursive'
56+
- name: Install libcurl, zlib, nlohmann-json with apt
57+
run: |
58+
sudo -E ./ci/setup_ci_environment.sh
59+
sudo -E ./ci/setup_cmake.sh
60+
sudo -E ./ci/setup_googletest.sh
61+
- name: Install abseil, protobuf, and grpc with apt
62+
run: |
63+
sudo -E apt-get update
64+
sudo -E apt-get install -y libabsl-dev libprotobuf-dev libgrpc++-dev protobuf-compiler protobuf-compiler-grpc
65+
- name: Run Tests (static libs)
66+
env:
67+
BUILD_SHARED_LIBS: 'OFF'
68+
run: ./ci/do_ci.sh cmake.install.test
69+
- name: Run Tests (shared libs)
70+
env:
71+
BUILD_SHARED_LIBS: 'ON'
72+
run: ./ci/do_ci.sh cmake.install.test
73+
74+
ubuntu_2404_script_build_grpc_1_71_0:
75+
name: Ubuntu 24.04 script grpc 1.71.0 cxx17 (static libs)
76+
runs-on: ubuntu-24.04
77+
env:
78+
INSTALL_TEST_DIR: '/home/runner/install_test'
79+
CXX_STANDARD: '20'
80+
BUILD_TYPE: 'Debug'
81+
steps:
82+
- uses: actions/checkout@v4
83+
with:
84+
submodules: 'recursive'
85+
- name: Install gtest, libcurl, zlib, nlohmann-json with apt
86+
run: |
87+
sudo -E ./ci/setup_ci_environment.sh
88+
sudo -E ./ci/setup_cmake.sh
89+
sudo -E ./ci/setup_googletest.sh
90+
- name: Build abseil, protobuf, and grpc with ci scripts
91+
env:
92+
ABSEIL_CPP_VERSION: '20240722.1'
93+
PROTOBUF_VERSION: '29.0'
94+
GRPC_VERSION: 'v1.71.0'
95+
run: |
96+
sudo -E ./ci/install_abseil.sh
97+
sudo -E ./ci/install_protobuf.sh
98+
sudo -E ./ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
99+
- name: Run Tests (static libs)
100+
env:
101+
BUILD_SHARED_LIBS: 'OFF'
102+
run: ./ci/do_ci.sh cmake.install.test
103+
104+
ubuntu_2204_script_build_grpc_1_55_0:
105+
name: Ubuntu 22.04 script grpc 1.55.0 cxx17 (static libs - shared libs)
106+
runs-on: ubuntu-22.04
107+
env:
108+
INSTALL_TEST_DIR: '/home/runner/install_test'
109+
CXX_STANDARD: '17'
110+
BUILD_TYPE: 'Debug'
111+
steps:
112+
- uses: actions/checkout@v4
113+
with:
114+
submodules: 'recursive'
115+
- name: Install gtest, libcurl, zlib, nlohmann-json with apt
116+
run: |
117+
sudo -E ./ci/setup_ci_environment.sh
118+
sudo -E ./ci/setup_cmake.sh
119+
sudo -E ./ci/setup_googletest.sh
120+
- name: Build abseil, protobuf, and grpc with ci scripts
121+
env:
122+
ABSEIL_CPP_VERSION: '20230125.3'
123+
PROTOBUF_VERSION: '23.3'
124+
GRPC_VERSION: 'v1.55.0'
125+
run: |
126+
sudo -E ./ci/install_abseil.sh
127+
sudo -E ./ci/install_protobuf.sh
128+
sudo -E ./ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
129+
- name: Run Tests (static libs)
130+
env:
131+
BUILD_SHARED_LIBS: 'OFF'
132+
run: ./ci/do_ci.sh cmake.install.test
133+
- name: Run Tests (shared libs)
134+
env:
135+
BUILD_SHARED_LIBS: 'ON'
136+
run: ./ci/do_ci.sh cmake.install.test
137+
138+
ubuntu_2204_script_build_grpc_1_49_2:
139+
name: Ubuntu 22.04 script grpc 1.49.2 cxx14 (static libs - shared libs)
140+
runs-on: ubuntu-22.04
141+
env:
142+
INSTALL_TEST_DIR: '/home/runner/install_test'
143+
CXX_STANDARD: '14'
144+
BUILD_TYPE: 'Debug'
145+
steps:
146+
- uses: actions/checkout@v4
147+
with:
148+
submodules: 'recursive'
149+
- name: Install gtest, libcurl, zlib, nlohmann-json with apt
150+
run: |
151+
sudo -E ./ci/setup_ci_environment.sh
152+
sudo -E ./ci/setup_cmake.sh
153+
sudo -E ./ci/setup_googletest.sh
154+
- name: Build abseil, protobuf, and grpc with ci scripts
155+
env:
156+
ABSEIL_CPP_VERSION: '20220623.2'
157+
PROTOBUF_VERSION: '21.12'
158+
GRPC_VERSION: 'v1.49.2'
159+
run: |
160+
sudo -E ./ci/install_abseil.sh
161+
sudo -E ./ci/install_protobuf.sh
162+
sudo -E ./ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
163+
- name: Run Tests (static libs)
164+
env:
165+
BUILD_SHARED_LIBS: 'OFF'
166+
run: ./ci/do_ci.sh cmake.install.test
167+
- name: Run Tests (shared libs)
168+
env:
169+
BUILD_SHARED_LIBS: 'ON'
170+
run: ./ci/do_ci.sh cmake.install.test
171+
172+
ubuntu_2404_conan_stable:
173+
name: Ubuntu 24.04 conan stable cxx17 (static libs - shared libs - opentracing shim)
174+
runs-on: ubuntu-24.04
175+
env:
176+
INSTALL_TEST_DIR: '/home/runner/install_test'
177+
CXX_STANDARD: '17'
178+
CMAKE_TOOLCHAIN_FILE: /home/runner/conan/build/Debug/generators/conan_toolchain.cmake
179+
BUILD_TYPE: 'Debug'
180+
steps:
181+
- uses: actions/checkout@v4
182+
with:
183+
submodules: 'recursive'
184+
- name: Install Conan
185+
run: |
186+
python3 -m pip install --upgrade pip
187+
pip install "conan>=2.0,<3"
188+
conan profile detect --force
189+
- name: Install or build all dependencies with Conan
190+
run: |
191+
sudo -E ./ci/setup_cmake.sh
192+
conan install install/conan/conanfile_stable.txt --build=missing -of /home/runner/conan -s build_type=Debug
193+
- name: Run Tests (static libs)
194+
env:
195+
BUILD_SHARED_LIBS: 'OFF'
196+
run: ./ci/do_ci.sh cmake.install.test
197+
- name: Run Tests (shared libs)
198+
env:
199+
BUILD_SHARED_LIBS: 'ON'
200+
run: ./ci/do_ci.sh cmake.install.test
201+
- name: verify pkgconfig packages
202+
run: |
203+
export PKG_CONFIG_PATH=$INSTALL_TEST_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
204+
./ci/verify_packages.sh
205+
- name: Run OpenTracing Shim Test
206+
run: ./ci/do_ci.sh cmake.opentracing_shim.install.test
207+
208+
ubuntu_2404_conan_latest:
209+
name: Ubuntu 24.04 conan latest cxx17 (static libs)
210+
runs-on: ubuntu-24.04
211+
env:
212+
INSTALL_TEST_DIR: '/home/runner/install_test'
213+
CXX_STANDARD: '17'
214+
CMAKE_TOOLCHAIN_FILE: /home/runner/conan/build/Debug/generators/conan_toolchain.cmake
215+
BUILD_TYPE: 'Debug'
216+
steps:
217+
- uses: actions/checkout@v4
218+
with:
219+
submodules: 'recursive'
220+
- name: Install Conan
221+
run: |
222+
python3 -m pip install --upgrade pip
223+
pip install "conan>=2.0,<3"
224+
conan profile detect --force
225+
- name: Install or build all dependencies with Conan
226+
run: |
227+
sudo -E ./ci/setup_cmake.sh
228+
conan install install/conan/conanfile_latest.txt --build=missing -of /home/runner/conan -s build_type=Debug
229+
- name: Run Tests (static libs)
230+
env:
231+
BUILD_SHARED_LIBS: 'OFF'
232+
run: ./ci/do_ci.sh cmake.install.test
233+
- name: verify pkgconfig packages
234+
run: |
235+
export PKG_CONFIG_PATH=$INSTALL_TEST_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
236+
./ci/verify_packages.sh
237+
238+
macos_14_conan_stable:
239+
name: macOS 14 conan stable cxx17 (static libs)
240+
runs-on: macos-14
241+
env:
242+
INSTALL_TEST_DIR: '/Users/runner/install_test'
243+
CXX_STANDARD: '17'
244+
CMAKE_TOOLCHAIN_FILE: '/Users/runner/conan/build/Debug/generators/conan_toolchain.cmake'
245+
BUILD_TYPE: 'Debug'
246+
steps:
247+
- uses: actions/checkout@v4
248+
with:
249+
submodules: 'recursive'
250+
- name: Install Conan and tools
251+
run: |
252+
brew install conan autoconf automake libtool coreutils
253+
sudo -E ./ci/setup_cmake_macos.sh
254+
conan profile detect --force
255+
- name: Install or build all dependencies with Conan
256+
run: conan install install/conan/conanfile_stable.txt --build=missing -of /Users/runner/conan -s build_type=Debug
257+
- name: Run Tests (static libs)
258+
env:
259+
BUILD_SHARED_LIBS: 'OFF'
260+
run: ./ci/do_ci.sh cmake.install.test
261+
262+
macos_14_brew_packages:
263+
name: macOS 14 brew packages cxx17 (static libs)
264+
runs-on: macos-14
265+
env:
266+
CXX_STANDARD: '17'
267+
BUILD_TYPE: 'Debug'
268+
steps:
269+
- uses: actions/checkout@v4
270+
with:
271+
submodules: 'recursive'
272+
- name: Install Dependencies with Homebrew
273+
run: |
274+
sudo -E ./ci/setup_cmake_macos.sh
275+
brew install coreutils
276+
brew install googletest
277+
brew install google-benchmark
278+
brew install zlib
279+
brew install abseil
280+
brew install protobuf
281+
brew install grpc
282+
brew install nlohmann-json
283+
brew install prometheus-cpp
284+
- name: Run Tests (static libs)
285+
env:
286+
BUILD_SHARED_LIBS: 'OFF'
287+
run: ./ci/do_ci.sh cmake.install.test

0 commit comments

Comments
 (0)