| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562 |
- # Copyright The OpenTelemetry Authors
- # SPDX-License-Identifier: Apache-2.0
- $ErrorActionPreference = "Stop";
- trap { $host.SetShouldExit(1) }
- $action = $args[0]
- $nproc = (Get-ComputerInfo).CsNumberOfLogicalProcessors
- $SRC_DIR = (Get-Item -Path ".\").FullName
- # Workaround https://github.com/bazelbuild/bazel/issues/18683
- $BAZEL_STARTUP_OPTIONS = "--output_base=C:\O"
- $BAZEL_OPTIONS = "--copt=-DENABLE_ASYNC_EXPORT --compilation_mode=dbg"
- $BAZEL_TEST_OPTIONS = "$BAZEL_OPTIONS --test_output=errors"
- if (!(test-path build)) {
- mkdir build
- }
- $BUILD_DIR = Join-Path "$SRC_DIR" "build"
- if (!(test-path install_test)) {
- mkdir install_test
- }
- $INSTALL_TEST_DIR = Join-Path "$SRC_DIR" "install_test"
- if (!(test-path plugin)) {
- mkdir plugin
- }
- $PLUGIN_DIR = Join-Path "$SRC_DIR" "plugin"
- $VCPKG_DIR = Join-Path "$SRC_DIR" "tools/vcpkg"
- $Env:CTEST_OUTPUT_ON_FAILURE = "1"
- switch ($action) {
- "bazel.build" {
- bazel $BAZEL_STARTUP_OPTIONS build $BAZEL_OPTIONS --action_env=VCPKG_DIR=$VCPKG_DIR --deleted_packages=opentracing-shim -- //...
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.dll.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DOPENTELEMETRY_BUILD_DLL=1 `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- $env:PATH = "$BUILD_DIR\ext\src\dll\Debug;$env:PATH"
- examples\simple\Debug\example_simple.exe
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- examples\metrics_simple\Debug\metrics_ostream_example.exe
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- examples\logs_simple\Debug\example_logs_simple.exe
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.dll.cxx20.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DCMAKE_CXX_STANDARD=20 `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DOPENTELEMETRY_BUILD_DLL=1 `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- $env:PATH = "$BUILD_DIR\ext\src\dll\Debug;$env:PATH"
- examples\simple\Debug\example_simple.exe
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- examples\metrics_simple\Debug\metrics_ostream_example.exe
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- examples\logs_simple\Debug\example_logs_simple.exe
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.maintainer.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DWITH_OTLP_GRPC=ON `
- -DWITH_OTLP_HTTP=ON `
- -DWITH_OTLP_RETRY_PREVIEW=ON `
- -DOTELCPP_MAINTAINER_MODE=ON `
- -DWITH_NO_DEPRECATED_CODE=ON `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.maintainer.cxx20.stl.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DWITH_STL=CXX20 `
- -DCMAKE_CXX_STANDARD=20 `
- -DWITH_OTLP_GRPC=ON `
- -DWITH_OTLP_HTTP=ON `
- -DWITH_OTLP_RETRY_PREVIEW=ON `
- -DOTELCPP_MAINTAINER_MODE=ON `
- -DWITH_NO_DEPRECATED_CODE=ON `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.maintainer.abiv2.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DWITH_OTLP_GRPC=ON `
- -DWITH_OTLP_HTTP=ON `
- -DWITH_OTLP_RETRY_PREVIEW=ON `
- -DOTELCPP_MAINTAINER_MODE=ON `
- -DWITH_NO_DEPRECATED_CODE=ON `
- -DWITH_ABI_VERSION_1=OFF `
- -DWITH_ABI_VERSION_2=ON `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.with_async_export.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DWITH_ASYNC_EXPORT_PREVIEW=ON `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.exporter.otprotocol.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DWITH_OTLP_GRPC=ON `
- -DWITH_OTLP_HTTP=ON `
- -DWITH_OTLP_RETRY_PREVIEW=ON `
- -DWITH_OTPROTCOL=ON `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.exporter.otprotocol.dll.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DOPENTELEMETRY_BUILD_DLL=1 `
- -DWITH_OTPROTCOL=ON `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.exporter.otprotocol.with_async_export.test" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DWITH_ASYNC_EXPORT_PREVIEW=ON `
- -DWITH_OTPROTCOL=ON `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.build_example_plugin" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DWITH_ASYNC_EXPORT_PREVIEW=ON `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cp examples/plugin/plugin/Debug/example_plugin.dll ${PLUGIN_DIR}
- }
- "cmake.test_example_plugin" {
- cd "$BUILD_DIR"
- cmake $SRC_DIR `
- -DVCPKG_TARGET_TRIPLET=x64-windows `
- -DWITH_ASYNC_EXPORT_PREVIEW=ON `
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cp examples/plugin/plugin/Debug/example_plugin.dll ${PLUGIN_DIR}
- $config = New-TemporaryFile
- examples/plugin/load/Debug/load_plugin_example.exe ${PLUGIN_DIR}/example_plugin.dll $config
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- }
- "cmake.install.test" {
- Remove-Item -Recurse -Force "$BUILD_DIR\*"
- Remove-Item -Recurse -Force "$INSTALL_TEST_DIR\*"
- cd "$BUILD_DIR"
- if (Test-Path Env:\CXX_STANDARD) {
- $CXX_STANDARD = [int](Get-Item Env:\CXX_STANDARD).Value
- } else {
- $CXX_STANDARD = 14
- }
- if (-not $CXX_STANDARD) {
- $CXX_STANDARD = 14
- }
- Write-Host "Using CXX_STANDARD: $CXX_STANDARD"
-
- $CMAKE_OPTIONS = @(
- "-DCMAKE_CXX_STANDARD=$CXX_STANDARD",
- "-DCMAKE_CXX_STANDARD_REQUIRED=ON",
- "-DCMAKE_CXX_EXTENSIONS=OFF",
- "-DVCPKG_TARGET_TRIPLET=x64-windows",
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- )
- cmake $SRC_DIR `
- $CMAKE_OPTIONS `
- "-DCMAKE_INSTALL_PREFIX=$INSTALL_TEST_DIR" `
- -DWITH_ABI_VERSION_1=OFF `
- -DWITH_ABI_VERSION_2=ON `
- -DWITH_THREAD_INSTRUMENTATION_PREVIEW=ON `
- -DWITH_METRICS_EXEMPLAR_PREVIEW=ON `
- -DWITH_ASYNC_EXPORT_PREVIEW=ON `
- -DWITH_OTLP_GRPC_SSL_MTLS_PREVIEW=ON `
- -DWITH_OTLP_RETRY_PREVIEW=ON `
- -DWITH_OTLP_GRPC=ON `
- -DWITH_OTLP_HTTP=ON `
- -DWITH_OTLP_FILE=ON `
- -DWITH_OTLP_HTTP_COMPRESSION=ON `
- -DWITH_HTTP_CLIENT_CURL=ON `
- -DWITH_PROMETHEUS=ON `
- -DWITH_ZIPKIN=ON `
- -DWITH_ELASTICSEARCH=ON `
- -DWITH_ETW=ON `
- -DWITH_EXAMPLES=ON `
- -DWITH_EXAMPLES_HTTP=ON `
- -DBUILD_W3CTRACECONTEXT_TEST=ON `
- -DOPENTELEMETRY_INSTALL=ON
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . --target install
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- $env:PATH = "$INSTALL_TEST_DIR\bin;$env:PATH"
- $CMAKE_OPTIONS_STRING = $CMAKE_OPTIONS -join " "
-
- $EXPECTED_COMPONENTS = @(
- "api",
- "sdk",
- "ext_common",
- "ext_http_curl",
- "exporters_in_memory",
- "exporters_ostream",
- "exporters_otlp_common",
- "exporters_otlp_file",
- "exporters_otlp_grpc",
- "exporters_otlp_http",
- "exporters_prometheus",
- "exporters_elasticsearch",
- "exporters_zipkin",
- "exporters_etw"
- )
- $EXPECTED_COMPONENTS_STRING = $EXPECTED_COMPONENTS -join ";"
- mkdir "$BUILD_DIR\install_test"
- cd "$BUILD_DIR\install_test"
- cmake $CMAKE_OPTIONS `
- "-DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR" `
- "-DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING" `
- "-DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING" `
- -S "$SRC_DIR\install\test\cmake"
-
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug --output-on-failure
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- exit 0
- }
- "cmake.dll.install.test" {
- cd "$BUILD_DIR"
- Remove-Item -Recurse -Force "$BUILD_DIR\*"
- Remove-Item -Recurse -Force "$INSTALL_TEST_DIR\*"
- $CMAKE_OPTIONS = @(
- "-DCMAKE_CXX_STANDARD=17",
- "-DVCPKG_TARGET_TRIPLET=x64-windows",
- "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake"
- )
- cmake $SRC_DIR `
- $CMAKE_OPTIONS `
- "-DCMAKE_INSTALL_PREFIX=$INSTALL_TEST_DIR" `
- -DOPENTELEMETRY_BUILD_DLL=1 `
- -DWITH_ABI_VERSION_1=ON `
- -DWITH_ABI_VERSION_2=OFF `
- -DWITH_THREAD_INSTRUMENTATION_PREVIEW=ON `
- -DWITH_METRICS_EXEMPLAR_PREVIEW=ON `
- -DWITH_ASYNC_EXPORT_PREVIEW=ON `
- -DWITH_ETW=ON `
- -DOPENTELEMETRY_INSTALL=ON `
- -DWITH_OTLP_GRPC_SSL_MTLS_PREVIEW=OFF `
- -DWITH_OTLP_RETRY_PREVIEW=OFF `
- -DWITH_OTLP_GRPC=OFF `
- -DWITH_OTLP_HTTP=OFF `
- -DWITH_OTLP_FILE=OFF `
- -DWITH_OTLP_HTTP_COMPRESSION=OFF `
- -DWITH_HTTP_CLIENT_CURL=OFF `
- -DWITH_PROMETHEUS=OFF `
- -DWITH_ZIPKIN=OFF `
- -DWITH_ELASTICSEARCH=OFF `
- -DWITH_EXAMPLES=OFF `
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . -j $nproc
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- cmake --build . --target install
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- $env:PATH = "$INSTALL_TEST_DIR\bin;$env:PATH"
- echo "$env:PATH"
- $CMAKE_OPTIONS_STRING = $CMAKE_OPTIONS -join " "
- $EXPECTED_COMPONENTS = @(
- "api",
- "sdk",
- "ext_common",
- "exporters_in_memory",
- "exporters_ostream",
- "exporters_etw",
- "ext_dll"
- )
- $EXPECTED_COMPONENTS_STRING = $EXPECTED_COMPONENTS -join ";"
- mkdir "$BUILD_DIR\install_test"
- cd "$BUILD_DIR\install_test"
- cmake $CMAKE_OPTIONS `
- "-DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR" `
- "-DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING" `
- "-DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING" `
- -S "$SRC_DIR\install\test\cmake"
-
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- ctest -C Debug --output-on-failure
- $exit = $LASTEXITCODE
- if ($exit -ne 0) {
- exit $exit
- }
- exit 0
- }
- default {
- echo "unknown action: $action"
- exit 1
- }
- }
|