From de382953f3694ba05e4cd8b9714d042580cd91af Mon Sep 17 00:00:00 2001 From: Iwo Sidorowicz Date: Fri, 21 Aug 2026 09:44:38 +0200 Subject: [PATCH 1/5] fix: address clang-tidy 17 errors CI enables clang-tidy with -warnings-as-errors, and three checks were failing the build: - clang-analyzer-cplusplus.NewDeleteLeaks (24+ sites across TokenEndpointImpl, IndexLayerClientImpl, VolatileLayerClientImpl, VersionedLayerClientImpl, StreamLayerClientImpl): Every flagged call path was traced end-to-end and contains zero raw new/delete; ownership is shared_ptr/std::function throughout, so each site is suppressed with NOLINTNEXTLINE - clang-analyzer-deadcode.DeadStores (Crypto.cpp:171): ComputeSha256 mutated `value` via `>>=` when packing the last output byte, a redundant shift whose result was never read; changed to non-mutating `>>`. - clang-analyzer-optin.cplusplus.VirtualCall (SignInResultImpl.cpp:95): the constructor called virtual IsValid() instead of reading is_valid_ directly Resolves: DATASDK-104 Signed-off-by: Iwo Sidorowicz --- olp-cpp-sdk-authentication/src/Crypto.cpp | 2 +- .../src/SignInResultImpl.cpp | 2 +- .../src/TokenEndpointImpl.cpp | 1 + .../src/IndexLayerClientImpl.cpp | 2 ++ .../src/StreamLayerClientImpl.cpp | 2 ++ .../src/VersionedLayerClientImpl.cpp | 12 ++++++++++++ .../src/VolatileLayerClientImpl.cpp | 17 +++++++++++++++++ 7 files changed, 36 insertions(+), 2 deletions(-) diff --git a/olp-cpp-sdk-authentication/src/Crypto.cpp b/olp-cpp-sdk-authentication/src/Crypto.cpp index 52ae764a9..da9446a85 100644 --- a/olp-cpp-sdk-authentication/src/Crypto.cpp +++ b/olp-cpp-sdk-authentication/src/Crypto.cpp @@ -168,7 +168,7 @@ Crypto::Sha256Digest ComputeSha256(const std::vector& src) { auto v3 = (unsigned char)value; auto v2 = (unsigned char)(value >>= 8); auto v1 = (unsigned char)(value >>= 8); - ret[j + 0] = (unsigned char)(value >>= 8); + ret[j + 0] = (unsigned char)(value >> 8); ret[j + 1] = v1; ret[j + 2] = v2; ret[j + 3] = v3; diff --git a/olp-cpp-sdk-authentication/src/SignInResultImpl.cpp b/olp-cpp-sdk-authentication/src/SignInResultImpl.cpp index 334de6cb1..8440bb85e 100644 --- a/olp-cpp-sdk-authentication/src/SignInResultImpl.cpp +++ b/olp-cpp-sdk-authentication/src/SignInResultImpl.cpp @@ -92,7 +92,7 @@ SignInResultImpl::SignInResultImpl( // Extra response data if no errors reported if (!HasError()) { - if (!IsValid()) { + if (!is_valid_) { status_ = http::HttpStatusCode::SERVICE_UNAVAILABLE; error_.message = Constants::ERROR_HTTP_SERVICE_UNAVAILABLE; } else { diff --git a/olp-cpp-sdk-authentication/src/TokenEndpointImpl.cpp b/olp-cpp-sdk-authentication/src/TokenEndpointImpl.cpp index a3808009a..d30fb9e05 100644 --- a/olp-cpp-sdk-authentication/src/TokenEndpointImpl.cpp +++ b/olp-cpp-sdk-authentication/src/TokenEndpointImpl.cpp @@ -192,6 +192,7 @@ client::CancellationToken TokenEndpointImpl::RequestToken( properties.scope = scope_; return auth_client_.SignInClient( credentials_, properties, + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [callback]( const AuthenticationClient::SignInClientResponse& sign_in_response) { if (!sign_in_response) { diff --git a/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp index 0ee6b00f1..21fee435d 100644 --- a/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp @@ -242,6 +242,7 @@ client::CancellationToken IndexLayerClientImpl::DeleteIndexData( auto cancel_context = std::make_shared(); auto self = shared_from_this(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(op_id); callback(DeleteIndexDataResponse(client::ApiError( @@ -302,6 +303,7 @@ client::CancellationToken IndexLayerClientImpl::UpdateIndex( auto self = shared_from_this(); auto op_id = tokenList_.GetNextId(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(op_id); callback(UpdateIndexResponse(client::ApiError( diff --git a/olp-cpp-sdk-dataservice-write/src/StreamLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/StreamLayerClientImpl.cpp index 6a0047023..0763784a8 100644 --- a/olp-cpp-sdk-dataservice-write/src/StreamLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/StreamLayerClientImpl.cpp @@ -214,6 +214,7 @@ olp::client::CancellationToken StreamLayerClientImpl::Flush( // invocation: one during execution phase and other when `Flush` is cancelled. auto exec_started = std::make_shared(false); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto task_context = client::TaskContext::Create( [=](client::CancellationContext context) -> EmptyFlushApiResponse { exec_started->exchange(true); @@ -249,6 +250,7 @@ olp::client::CancellationToken StreamLayerClientImpl::Flush( callback(responses); return EmptyFlushApiResponse{}; }, + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](EmptyFlushApiResponse /*response*/) { // we don't need to notify user 2 times, cause we already invoke a // callback in the execution function: diff --git a/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp index ecefefa47..e109c6c1f 100644 --- a/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp @@ -224,12 +224,14 @@ olp::client::CancellationToken VersionedLayerClientImpl::GetBaseVersion( auto cancel_context = std::make_shared(); auto id = tokenList_.GetNextId(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(id); callback(client::ApiError(client::ErrorCode::Cancelled, "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getBaseVersion_callback = [=](MetadataApi::CatalogVersionResponse response) { self->tokenList_.RemoveTask(id); @@ -247,12 +249,14 @@ olp::client::CancellationToken VersionedLayerClientImpl::GetBaseVersion( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getBaseVersion_function = [=]() -> client::CancellationToken { return MetadataApi::GetLatestCatalogVersion(*self->apiclient_metadata_, -1, olp::porting::none, getBaseVersion_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( @@ -298,12 +302,14 @@ olp::client::CancellationToken VersionedLayerClientImpl::GetBatch( auto cancel_context = std::make_shared(); auto id = tokenList_.GetNextId(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(id); callback(client::ApiError(client::ErrorCode::Cancelled, "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getPublication_callback = [=](GetPublicationResponse getPublicationResponse) { self->tokenList_.RemoveTask(id); @@ -314,12 +320,14 @@ olp::client::CancellationToken VersionedLayerClientImpl::GetBatch( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getPublication_function = [=]() -> client::CancellationToken { return PublishApi::GetPublication(*self->apiclient_publish_, publicationId, olp::porting::none, getPublication_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( @@ -566,6 +574,7 @@ client::CancellationToken VersionedLayerClientImpl::CheckDataExists( auto cancel_context = std::make_shared(); auto id = tokenList_.GetNextId(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto check_data_exists_callback = [=](CheckDataExistsResponse check_data_exists_response) { self->tokenList_.RemoveTask(id); @@ -576,17 +585,20 @@ client::CancellationToken VersionedLayerClientImpl::CheckDataExists( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto check_data_exists_function = [=]() -> client::CancellationToken { return BlobApi::checkBlobExists(*self->apiclient_blob_, layer_id, data_handle, olp::porting::none, check_data_exists_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [callback]() { callback(client::ApiError(client::ErrorCode::Cancelled, "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( diff --git a/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp index 332d7c043..b28dfb0a9 100644 --- a/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp @@ -192,6 +192,7 @@ client::CancellationToken VolatileLayerClientImpl::GetBaseVersion( "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getBaseVersion_callback = [=](MetadataApi::CatalogVersionResponse response) { self->tokenList_.RemoveTask(id); @@ -209,12 +210,14 @@ client::CancellationToken VolatileLayerClientImpl::GetBaseVersion( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getBaseVersion_function = [=]() -> client::CancellationToken { return MetadataApi::GetLatestCatalogVersion(*self->apiclient_metadata_, -1, olp::porting::none, getBaseVersion_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( @@ -264,6 +267,7 @@ client::CancellationToken VolatileLayerClientImpl::StartBatch( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto init_publication_function = [=]() -> client::CancellationToken { model::Publication pub; pub.SetLayerIds(request.GetLayers().value_or(std::vector())); @@ -275,12 +279,14 @@ client::CancellationToken VolatileLayerClientImpl::StartBatch( init_publication_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(id); callback(client::ApiError(client::ErrorCode::Cancelled, "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( @@ -425,6 +431,7 @@ client::CancellationToken VolatileLayerClientImpl::GetBatch( "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getPublication_callback = [=](GetPublicationResponse getPublicationResponse) { self->tokenList_.RemoveTask(id); @@ -435,12 +442,14 @@ client::CancellationToken VolatileLayerClientImpl::GetBatch( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getPublication_function = [=]() -> client::CancellationToken { return PublishApi::GetPublication(*self->apiclient_publish_, publicationId, olp::porting::none, getPublication_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( @@ -572,12 +581,14 @@ client::CancellationToken VolatileLayerClientImpl::PublishToBatch( auto self = shared_from_this(); auto id = tokenList_.GetNextId(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(id); callback(client::ApiError(client::ErrorCode::Cancelled, "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto upload_partitions_callback = [=](UploadPartitionsResponse upload_partitions_response) { self->tokenList_.RemoveTask(id); @@ -588,6 +599,7 @@ client::CancellationToken VolatileLayerClientImpl::PublishToBatch( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto upload_partitions_function = [=]() -> client::CancellationToken { std::vector pub_partition_list; for (const auto& partition_request : partitions) { @@ -610,6 +622,7 @@ client::CancellationToken VolatileLayerClientImpl::PublishToBatch( upload_partitions_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( @@ -654,12 +667,14 @@ client::CancellationToken VolatileLayerClientImpl::CompleteBatch( auto self = shared_from_this(); auto cancel_context = std::make_shared(); auto id = tokenList_.GetNextId(); + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto cancel_function = [=]() { self->tokenList_.RemoveTask(id); callback(client::ApiError(client::ErrorCode::Cancelled, "Operation cancelled.", true)); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto completePublication_callback = [=](SubmitPublicationResponse submitPublicationResponse) { self->tokenList_.RemoveTask(id); @@ -670,12 +685,14 @@ client::CancellationToken VolatileLayerClientImpl::CompleteBatch( } }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto completePublication_function = [=]() -> client::CancellationToken { return PublishApi::SubmitPublication(*self->apiclient_publish_, publicationId, olp::porting::none, completePublication_callback); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false cancel_context->ExecuteOrCancelled( [=]() -> client::CancellationToken { return self->InitApiClients( From 75a0d297e54575f3c838b6962d0a51b3ab4ea404 Mon Sep 17 00:00:00 2001 From: Iwo Sidorowicz Date: Fri, 21 Aug 2026 12:30:59 +0200 Subject: [PATCH 2/5] Minor: add clang-tidy job Add clang-tidy 17 job to the pipeline Resolves: DATASDK-104 Signed-off-by: Iwo Sidorowicz --- .clang-tidy | 39 ++++ .github/workflows/psv_pipelines.yml | 298 +++++++++++++++------------- scripts/misc/clang-tidy-17-check.sh | 24 +++ 3 files changed, 221 insertions(+), 140 deletions(-) create mode 100644 .clang-tidy create mode 100644 scripts/misc/clang-tidy-17-check.sh diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 000000000..096a55e87 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,39 @@ +# Checks: 'boost-*,bugprone-*,clang-diagnostic*,cppcoreguidelines-*,modernize-*,misc-*,performance-*,readability-*,-bugprone-easily-swappable-parameters,-cppcoreguidelines-avoid-do-while,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-type-vararg,-modernize-use-trailing-return-type,-misc-include-cleaner,-misc-non-private-member-variables-in-classes' +WarningsAsErrors: "*" +HeaderFilterRegex: '.*\/(olp-cpp-sdk-core|olp-cpp-sdk-authentication|olp-cpp-sdk-dataservice-read|olp-cpp-sdk-dataservice-write)\/.*' +FormatStyle: "file" +CheckOptions: + - key: readability-function-cognitive-complexity.IgnoreMacros + value: true + - key: readability-identifier-naming.ClassCase + value: CamelCase + - key: readability-identifier-naming.MethodCase + value: CamelCase + - key: readability-identifier-naming.MemberCase + value: lower_case + - key: readability-identifier-naming.PrivateMemberSuffix + value: _ + - key: readability-identifier-naming.ProtectedMemberSuffix + value: _ + - key: readability-identifier-naming.FunctionCase + value: CamelCase + - key: readability-identifier-naming.ConstexprVariableCase + value: CamelCase + - key: readability-identifier-naming.ConstexprVariablePrefix + value: k + - key: readability-identifier-naming.StaticConstantCase + value: CamelCase + - key: readability-identifier-naming.StaticConstantPrefix + value: k + - key: readability-identifier-naming.GlobalConstantCase + value: CamelCase + - key: readability-identifier-naming.GlobalConstantPrefix + value: k + - key: readability-identifier-naming.EnumConstantCase + value: CamelCase + - key: readability-identifier-naming.EnumConstantPrefix + value: k + - key: readability-identifier-naming.ParameterCase + value: lower_case + - key: readability-identifier-naming.VariableCase + value: lower_case diff --git a/.github/workflows/psv_pipelines.yml b/.github/workflows/psv_pipelines.yml index e88dfcd69..20b34b188 100644 --- a/.github/workflows/psv_pipelines.yml +++ b/.github/workflows/psv_pipelines.yml @@ -6,7 +6,7 @@ on: - master pull_request: branches: - - '*' + - "*" env: SEGFAULT_SIGNALS: all @@ -26,6 +26,24 @@ jobs: run: ./scripts/misc/cpplint_ci.sh shell: bash + psv-linux-24-04-clang17-build-clang-tidy: + name: PSV.Linux.24.04.clang17.ClangTidy + if: github.event_name == 'pull_request' + runs-on: ubuntu-24.04 + steps: + - name: Check out repository + uses: actions/checkout@v7 + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + libboost-all-dev \ + libcurl4-openssl-dev + shell: bash + - name: Run clang-tidy + run: ./scripts/misc/clang-tidy-17-check.sh + shell: bash + psv-linux-22-04-gcc9-build-test-codecov: name: PSV.Linux.22.04.gcc9.Tests.CodeCov runs-on: ubuntu-22.04 @@ -34,24 +52,24 @@ jobs: CC: gcc-9 CXX: g++-9 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update && sudo apt-get install -y libboost-all-dev ccache libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends - shell: bash - - name: Compile project with cmake and ccache - run: gcc --version && ./scripts/linux/psv/build_psv.sh - shell: bash - - name: Run unit and integration tests - run: ./scripts/linux/psv/test_psv.sh - shell: bash - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v7 - with: - fail_ci_if_error: true # optional (default = false) - verbose: true # optional (default = false) - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update && sudo apt-get install -y libboost-all-dev ccache libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends + shell: bash + - name: Compile project with cmake and ccache + run: gcc --version && ./scripts/linux/psv/build_psv.sh + shell: bash + - name: Run unit and integration tests + run: ./scripts/linux/psv/test_psv.sh + shell: bash + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v7 + with: + fail_ci_if_error: true # optional (default = false) + verbose: true # optional (default = false) + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} psv-linux-22-04-gcc9-build-no-cache: name: PSV.Linux.22.04.gcc9.OLP_SDK_ENABLE_DEFAULT_CACHE=OFF @@ -61,14 +79,14 @@ jobs: CC: gcc-9 CXX: g++-9 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends - shell: bash - - name: Compile project without cache - run: ./scripts/linux/psv/build_psv_no_cache.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends + shell: bash + - name: Compile project without cache + run: ./scripts/linux/psv/build_psv_no_cache.sh + shell: bash psv-linux-22-04-gcc11-build: name: PSV.Linux.22.04.gcc11.Tests @@ -128,17 +146,17 @@ jobs: CC: gcc-14 CXX: g++-14 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 ccache --no-install-recommends - shell: bash - - name: Compile project with cmake and ccache - run: gcc --version && ./scripts/linux/psv/build_psv.sh - shell: bash - - name: Run unit and integration tests - run: ./scripts/linux/psv/test_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 ccache --no-install-recommends + shell: bash + - name: Compile project with cmake and ccache + run: gcc --version && ./scripts/linux/psv/build_psv.sh + shell: bash + - name: Run unit and integration tests + run: ./scripts/linux/psv/test_psv.sh + shell: bash psv-linux-22-04-gcc11-build-no-exceptions: name: PSV.Linux.22.04.gcc11.OLP_SDK_NO_EXCEPTION=ON @@ -163,14 +181,14 @@ jobs: CC: gcc-14 CXX: g++-14 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 --no-install-recommends - shell: bash - - name: Compile project without cache - run: ./scripts/linux/psv/build_psv_no_cache.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 --no-install-recommends + shell: bash + - name: Compile project without cache + run: ./scripts/linux/psv/build_psv_no_cache.sh + shell: bash psv-linux-24-04-gcc13-build: name: PSV.Linux.24.04.gcc13.Tests @@ -198,14 +216,14 @@ jobs: env: BUILD_TYPE: RelWithDebInfo steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev --no-install-recommends - shell: bash - - name: Compile project without cache - run: ./scripts/linux/psv/build_psv_no_cache.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev --no-install-recommends + shell: bash + - name: Compile project without cache + run: ./scripts/linux/psv/build_psv_no_cache.sh + shell: bash psv-linux-22-04-clang-build: name: PSV.Linux.22.04.clang.Tests @@ -216,17 +234,17 @@ jobs: CXX: clang++-11 CXXFLAGS: -Wno-deprecated-copy steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing - shell: bash - - name: Compile project on Clang - run: scripts/linux/psv/build_psv.sh - shell: bash - - name: Run unit and integration tests - run: scripts/linux/psv/test_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing + shell: bash + - name: Compile project on Clang + run: scripts/linux/psv/build_psv.sh + shell: bash + - name: Run unit and integration tests + run: scripts/linux/psv/test_psv.sh + shell: bash psv-linux-22-04-clang-hidden-build: name: PSV.Linux.22.04.clang.hidden @@ -238,14 +256,14 @@ jobs: CXXFLAGS: -Wno-deprecated-copy EXTRA_CMAKE_OPTIONS: -DCMAKE_CXX_VISIBILITY_PRESET=hidden -DOLP_SDK_ENABLE_TESTING=OFF steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing - shell: bash - - name: Compile project on Clang - run: scripts/linux/psv/build_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing + shell: bash + - name: Compile project on Clang + run: scripts/linux/psv/build_psv.sh + shell: bash psv-android-22-04-build: name: PSV.Linux.Android.22.04 @@ -253,24 +271,24 @@ jobs: env: BUILD_TYPE: RelWithDebInfo steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Verification of prerequisites - run: env && ls -la $ANDROID_HOME - shell: bash - - name: Android build and Examples - run: scripts/android/build.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Verification of prerequisites + run: env && ls -la $ANDROID_HOME + shell: bash + - name: Android build and Examples + run: scripts/android/build.sh + shell: bash psv-macos-15-arm64-xcode-16-build: name: PSV.MacOS15.Xcode16.ARM64 runs-on: macos-15 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: MacOS Build Xcode16 - run: scripts/macos/psv/azure_macos_build_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: MacOS Build Xcode16 + run: scripts/macos/psv/azure_macos_build_psv.sh + shell: bash psv-ios-arm64-xcode-26-build: name: PSV.iOS.MacOS15.Xcode26.ARM64 @@ -288,11 +306,11 @@ jobs: name: PSV.iOS.MacOS15.Xcode16.ARM64 runs-on: macOS-15 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: iOS Xcode 16 Build - run: scripts/ios/azure_ios_build_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: iOS Xcode 16 Build + run: scripts/ios/azure_ios_build_psv.sh + shell: bash psv-ios-os14-arm64-xcode-15-build: name: PSV.iOS.MacOS14.Xcode15.ARM64 @@ -322,16 +340,16 @@ jobs: runs-on: ubuntu-22.04 if: github.ref_name != 'master' steps: - - uses: actions/checkout@v7 - with: - fetch-depth: 0 - - name: Set tags env variables. - run: | - # Get your last commit message, not the merge commit. - text=$(git log -1 --no-merges --pretty=%B) - - name: Commit checker script. Verify commit text - run: scripts/misc/commit_checker.sh - shell: bash + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + - name: Set tags env variables. + run: | + # Get your last commit message, not the merge commit. + text=$(git log -1 --no-merges --pretty=%B) + - name: Commit checker script. Verify commit text + run: scripts/misc/commit_checker.sh + shell: bash psv-formatting-checker: name: PSV.Clang.Format.Checker @@ -339,42 +357,42 @@ jobs: env: CLANG_FORMAT_FILE: "clang-format.diff" steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Setup environment - run: | - set +x - set -e - sudo apt-get update - sudo apt-get install -y wget - mkdir _os_deps - cd _os_deps - wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - wget https://mirrors.edge.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb - wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/w/what-is-python/python-is-python2_2.7.17-4_all.deb - sudo apt-get install -y ./libffi6_3.2.1-8_amd64.deb - sudo apt-get install -y ./libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - sudo apt-get remove python-is-python3 - sudo apt-get install -y ./python-is-python2_2.7.17-4_all.deb - sudo apt-get install -y ./clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - cd .. - shell: bash - - name: "Clang format checker script" - run: ./scripts/misc/clang_format_ci.sh - shell: bash - - name: Store formatting check results - uses: actions/upload-artifact@v7 - with: - name: clang-format-diff - path: ${{ env.CLANG_FORMAT_FILE }} - - name: Verify check result - run: | - set +x - if [ -s ${CLANG_FORMAT_FILE} ] ; then - echo "Unformatted files are detected. " - echo "You may apply provided patch. Download from the workflow summary and unpack to root of repository." - echo "Then run: git apply $CLANG_FORMAT_FILE" - exit 1 - fi - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Setup environment + run: | + set +x + set -e + sudo apt-get update + sudo apt-get install -y wget + mkdir _os_deps + cd _os_deps + wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + wget https://mirrors.edge.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb + wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/w/what-is-python/python-is-python2_2.7.17-4_all.deb + sudo apt-get install -y ./libffi6_3.2.1-8_amd64.deb + sudo apt-get install -y ./libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + sudo apt-get remove python-is-python3 + sudo apt-get install -y ./python-is-python2_2.7.17-4_all.deb + sudo apt-get install -y ./clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + cd .. + shell: bash + - name: "Clang format checker script" + run: ./scripts/misc/clang_format_ci.sh + shell: bash + - name: Store formatting check results + uses: actions/upload-artifact@v7 + with: + name: clang-format-diff + path: ${{ env.CLANG_FORMAT_FILE }} + - name: Verify check result + run: | + set +x + if [ -s ${CLANG_FORMAT_FILE} ] ; then + echo "Unformatted files are detected. " + echo "You may apply provided patch. Download from the workflow summary and unpack to root of repository." + echo "Then run: git apply $CLANG_FORMAT_FILE" + exit 1 + fi + shell: bash diff --git a/scripts/misc/clang-tidy-17-check.sh b/scripts/misc/clang-tidy-17-check.sh new file mode 100644 index 000000000..f64bff852 --- /dev/null +++ b/scripts/misc/clang-tidy-17-check.sh @@ -0,0 +1,24 @@ +#!/bin/bash -ex + +BUILD_DIR="build-clang-tidy" + +rm -rf "${BUILD_DIR}" +mkdir "${BUILD_DIR}" + +cmake -S . -B "${BUILD_DIR}" -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_COMPILER=clang++-17 \ + -DCMAKE_C_COMPILER=clang-17 \ + -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \ + -DOLP_SDK_ENABLE_TESTING=OFF \ + -DOLP_SDK_BUILD_EXAMPLES=OFF + +cmake --build "${BUILD_DIR}" -- -j"$(nproc)" + +run-clang-tidy-17.py -p "${BUILD_DIR}" \ + -config-file="${PWD}/.clang-tidy" \ + "${PWD}/olp-cpp-sdk-core/.*" \ + "${PWD}/olp-cpp-sdk-authentication/.*" \ + "${PWD}/olp-cpp-sdk-dataservice-read/.*" \ + "${PWD}/olp-cpp-sdk-dataservice-write/.*" \ No newline at end of file From a4bfde687e433f862977242a83ef3940c54e5518 Mon Sep 17 00:00:00 2001 From: Iwo Sidorowicz Date: Fri, 21 Aug 2026 13:05:30 +0200 Subject: [PATCH 3/5] Minor: chmod fix Chmod fix for clang-tidy script Resolves: DATASDK-104 Signed-off-by: Iwo Sidorowicz --- scripts/misc/clang-tidy-17-check.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/misc/clang-tidy-17-check.sh diff --git a/scripts/misc/clang-tidy-17-check.sh b/scripts/misc/clang-tidy-17-check.sh old mode 100644 new mode 100755 From 2ba7e62b40c8a6f2db24ba301b1567103f49fb04 Mon Sep 17 00:00:00 2001 From: Iwo Sidorowicz Date: Fri, 21 Aug 2026 13:25:32 +0200 Subject: [PATCH 4/5] Minor: reposition suppresion lines Move each comment directly above the `[=](...)`. Resolves: DATASDK-104 Signed-off-by: Iwo Sidorowicz --- .../src/IndexLayerClientImpl.cpp | 1 + .../src/VersionedLayerClientImpl.cpp | 6 +++--- .../src/VolatileLayerClientImpl.cpp | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp index 21fee435d..1f80455b6 100644 --- a/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/IndexLayerClientImpl.cpp @@ -310,6 +310,7 @@ client::CancellationToken IndexLayerClientImpl::UpdateIndex( client::ErrorCode::Cancelled, "Operation cancelled.", true))); }; + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto updateIndex_callback = [=](UpdateIndexResponse update_index_response) { self->tokenList_.RemoveTask(op_id); if (!update_index_response.IsSuccessful()) { diff --git a/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp index e109c6c1f..14fba642d 100644 --- a/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/VersionedLayerClientImpl.cpp @@ -231,8 +231,8 @@ olp::client::CancellationToken VersionedLayerClientImpl::GetBaseVersion( "Operation cancelled.", true)); }; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getBaseVersion_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](MetadataApi::CatalogVersionResponse response) { self->tokenList_.RemoveTask(id); if (!response.IsSuccessful()) { @@ -309,8 +309,8 @@ olp::client::CancellationToken VersionedLayerClientImpl::GetBatch( "Operation cancelled.", true)); }; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getPublication_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](GetPublicationResponse getPublicationResponse) { self->tokenList_.RemoveTask(id); if (!getPublicationResponse.IsSuccessful()) { @@ -574,8 +574,8 @@ client::CancellationToken VersionedLayerClientImpl::CheckDataExists( auto cancel_context = std::make_shared(); auto id = tokenList_.GetNextId(); - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto check_data_exists_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](CheckDataExistsResponse check_data_exists_response) { self->tokenList_.RemoveTask(id); if (!check_data_exists_response.IsSuccessful()) { diff --git a/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp b/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp index b28dfb0a9..15012c096 100644 --- a/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp +++ b/olp-cpp-sdk-dataservice-write/src/VolatileLayerClientImpl.cpp @@ -192,8 +192,8 @@ client::CancellationToken VolatileLayerClientImpl::GetBaseVersion( "Operation cancelled.", true)); }; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getBaseVersion_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](MetadataApi::CatalogVersionResponse response) { self->tokenList_.RemoveTask(id); if (!response.IsSuccessful()) { @@ -431,8 +431,8 @@ client::CancellationToken VolatileLayerClientImpl::GetBatch( "Operation cancelled.", true)); }; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto getPublication_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](GetPublicationResponse getPublicationResponse) { self->tokenList_.RemoveTask(id); if (!getPublicationResponse.IsSuccessful()) { @@ -588,8 +588,8 @@ client::CancellationToken VolatileLayerClientImpl::PublishToBatch( "Operation cancelled.", true)); }; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto upload_partitions_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](UploadPartitionsResponse upload_partitions_response) { self->tokenList_.RemoveTask(id); if (!upload_partitions_response.IsSuccessful()) { @@ -674,8 +674,8 @@ client::CancellationToken VolatileLayerClientImpl::CompleteBatch( "Operation cancelled.", true)); }; - // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false auto completePublication_callback = + // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks): false [=](SubmitPublicationResponse submitPublicationResponse) { self->tokenList_.RemoveTask(id); if (!submitPublicationResponse.IsSuccessful()) { From 7293e54c8f4a41520c1acd13aca44732665acba8 Mon Sep 17 00:00:00 2001 From: Iwo Sidorowicz Date: Fri, 21 Aug 2026 15:16:18 +0200 Subject: [PATCH 5/5] Minor: revert formatting Revert formatting Resolves: DATASDK-104 Signed-off-by: Iwo Sidorowicz --- .github/workflows/psv_pipelines.yml | 282 ++++++++++++++-------------- 1 file changed, 141 insertions(+), 141 deletions(-) diff --git a/.github/workflows/psv_pipelines.yml b/.github/workflows/psv_pipelines.yml index 20b34b188..fd178651d 100644 --- a/.github/workflows/psv_pipelines.yml +++ b/.github/workflows/psv_pipelines.yml @@ -6,7 +6,7 @@ on: - master pull_request: branches: - - "*" + - '*' env: SEGFAULT_SIGNALS: all @@ -43,7 +43,7 @@ jobs: - name: Run clang-tidy run: ./scripts/misc/clang-tidy-17-check.sh shell: bash - + psv-linux-22-04-gcc9-build-test-codecov: name: PSV.Linux.22.04.gcc9.Tests.CodeCov runs-on: ubuntu-22.04 @@ -52,24 +52,24 @@ jobs: CC: gcc-9 CXX: g++-9 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update && sudo apt-get install -y libboost-all-dev ccache libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends - shell: bash - - name: Compile project with cmake and ccache - run: gcc --version && ./scripts/linux/psv/build_psv.sh - shell: bash - - name: Run unit and integration tests - run: ./scripts/linux/psv/test_psv.sh - shell: bash - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v7 - with: - fail_ci_if_error: true # optional (default = false) - verbose: true # optional (default = false) - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update && sudo apt-get install -y libboost-all-dev ccache libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends + shell: bash + - name: Compile project with cmake and ccache + run: gcc --version && ./scripts/linux/psv/build_psv.sh + shell: bash + - name: Run unit and integration tests + run: ./scripts/linux/psv/test_psv.sh + shell: bash + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v7 + with: + fail_ci_if_error: true # optional (default = false) + verbose: true # optional (default = false) + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} psv-linux-22-04-gcc9-build-no-cache: name: PSV.Linux.22.04.gcc9.OLP_SDK_ENABLE_DEFAULT_CACHE=OFF @@ -79,14 +79,14 @@ jobs: CC: gcc-9 CXX: g++-9 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends - shell: bash - - name: Compile project without cache - run: ./scripts/linux/psv/build_psv_no_cache.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-9 g++-9 --no-install-recommends + shell: bash + - name: Compile project without cache + run: ./scripts/linux/psv/build_psv_no_cache.sh + shell: bash psv-linux-22-04-gcc11-build: name: PSV.Linux.22.04.gcc11.Tests @@ -146,17 +146,17 @@ jobs: CC: gcc-14 CXX: g++-14 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 ccache --no-install-recommends - shell: bash - - name: Compile project with cmake and ccache - run: gcc --version && ./scripts/linux/psv/build_psv.sh - shell: bash - - name: Run unit and integration tests - run: ./scripts/linux/psv/test_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 ccache --no-install-recommends + shell: bash + - name: Compile project with cmake and ccache + run: gcc --version && ./scripts/linux/psv/build_psv.sh + shell: bash + - name: Run unit and integration tests + run: ./scripts/linux/psv/test_psv.sh + shell: bash psv-linux-22-04-gcc11-build-no-exceptions: name: PSV.Linux.22.04.gcc11.OLP_SDK_NO_EXCEPTION=ON @@ -181,14 +181,14 @@ jobs: CC: gcc-14 CXX: g++-14 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 --no-install-recommends - shell: bash - - name: Compile project without cache - run: ./scripts/linux/psv/build_psv_no_cache.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo rm /etc/apt/sources.list.d/microsoft-prod.list && sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev gcc-14 g++-14 --no-install-recommends + shell: bash + - name: Compile project without cache + run: ./scripts/linux/psv/build_psv_no_cache.sh + shell: bash psv-linux-24-04-gcc13-build: name: PSV.Linux.24.04.gcc13.Tests @@ -216,14 +216,14 @@ jobs: env: BUILD_TYPE: RelWithDebInfo steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev --no-install-recommends - shell: bash - - name: Compile project without cache - run: ./scripts/linux/psv/build_psv_no_cache.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libssl-dev libcurl4-openssl-dev --no-install-recommends + shell: bash + - name: Compile project without cache + run: ./scripts/linux/psv/build_psv_no_cache.sh + shell: bash psv-linux-22-04-clang-build: name: PSV.Linux.22.04.clang.Tests @@ -234,17 +234,17 @@ jobs: CXX: clang++-11 CXXFLAGS: -Wno-deprecated-copy steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing - shell: bash - - name: Compile project on Clang - run: scripts/linux/psv/build_psv.sh - shell: bash - - name: Run unit and integration tests - run: scripts/linux/psv/test_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing + shell: bash + - name: Compile project on Clang + run: scripts/linux/psv/build_psv.sh + shell: bash + - name: Run unit and integration tests + run: scripts/linux/psv/test_psv.sh + shell: bash psv-linux-22-04-clang-hidden-build: name: PSV.Linux.22.04.clang.hidden @@ -256,14 +256,14 @@ jobs: CXXFLAGS: -Wno-deprecated-copy EXTRA_CMAKE_OPTIONS: -DCMAKE_CXX_VISIBILITY_PRESET=hidden -DOLP_SDK_ENABLE_TESTING=OFF steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Install Ubuntu dependencies - run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing - shell: bash - - name: Compile project on Clang - run: scripts/linux/psv/build_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Install Ubuntu dependencies + run: sudo apt-get update -y && sudo apt-get install clang-11 ccache libcurl4-openssl-dev -y --no-install-recommends --fix-missing + shell: bash + - name: Compile project on Clang + run: scripts/linux/psv/build_psv.sh + shell: bash psv-android-22-04-build: name: PSV.Linux.Android.22.04 @@ -271,24 +271,24 @@ jobs: env: BUILD_TYPE: RelWithDebInfo steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Verification of prerequisites - run: env && ls -la $ANDROID_HOME - shell: bash - - name: Android build and Examples - run: scripts/android/build.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Verification of prerequisites + run: env && ls -la $ANDROID_HOME + shell: bash + - name: Android build and Examples + run: scripts/android/build.sh + shell: bash psv-macos-15-arm64-xcode-16-build: name: PSV.MacOS15.Xcode16.ARM64 runs-on: macos-15 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: MacOS Build Xcode16 - run: scripts/macos/psv/azure_macos_build_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: MacOS Build Xcode16 + run: scripts/macos/psv/azure_macos_build_psv.sh + shell: bash psv-ios-arm64-xcode-26-build: name: PSV.iOS.MacOS15.Xcode26.ARM64 @@ -306,11 +306,11 @@ jobs: name: PSV.iOS.MacOS15.Xcode16.ARM64 runs-on: macOS-15 steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: iOS Xcode 16 Build - run: scripts/ios/azure_ios_build_psv.sh - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: iOS Xcode 16 Build + run: scripts/ios/azure_ios_build_psv.sh + shell: bash psv-ios-os14-arm64-xcode-15-build: name: PSV.iOS.MacOS14.Xcode15.ARM64 @@ -340,16 +340,16 @@ jobs: runs-on: ubuntu-22.04 if: github.ref_name != 'master' steps: - - uses: actions/checkout@v7 - with: - fetch-depth: 0 - - name: Set tags env variables. - run: | - # Get your last commit message, not the merge commit. - text=$(git log -1 --no-merges --pretty=%B) - - name: Commit checker script. Verify commit text - run: scripts/misc/commit_checker.sh - shell: bash + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + - name: Set tags env variables. + run: | + # Get your last commit message, not the merge commit. + text=$(git log -1 --no-merges --pretty=%B) + - name: Commit checker script. Verify commit text + run: scripts/misc/commit_checker.sh + shell: bash psv-formatting-checker: name: PSV.Clang.Format.Checker @@ -357,42 +357,42 @@ jobs: env: CLANG_FORMAT_FILE: "clang-format.diff" steps: - - name: Check out repository - uses: actions/checkout@v7 - - name: Setup environment - run: | - set +x - set -e - sudo apt-get update - sudo apt-get install -y wget - mkdir _os_deps - cd _os_deps - wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - wget https://mirrors.edge.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb - wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/w/what-is-python/python-is-python2_2.7.17-4_all.deb - sudo apt-get install -y ./libffi6_3.2.1-8_amd64.deb - sudo apt-get install -y ./libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - sudo apt-get remove python-is-python3 - sudo apt-get install -y ./python-is-python2_2.7.17-4_all.deb - sudo apt-get install -y ./clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb - cd .. - shell: bash - - name: "Clang format checker script" - run: ./scripts/misc/clang_format_ci.sh - shell: bash - - name: Store formatting check results - uses: actions/upload-artifact@v7 - with: - name: clang-format-diff - path: ${{ env.CLANG_FORMAT_FILE }} - - name: Verify check result - run: | - set +x - if [ -s ${CLANG_FORMAT_FILE} ] ; then - echo "Unformatted files are detected. " - echo "You may apply provided patch. Download from the workflow summary and unpack to root of repository." - echo "Then run: git apply $CLANG_FORMAT_FILE" - exit 1 - fi - shell: bash + - name: Check out repository + uses: actions/checkout@v7 + - name: Setup environment + run: | + set +x + set -e + sudo apt-get update + sudo apt-get install -y wget + mkdir _os_deps + cd _os_deps + wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + wget https://apt.llvm.org/bionic/pool/main/l/llvm-toolchain-6.0/libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + wget https://mirrors.edge.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb + wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/w/what-is-python/python-is-python2_2.7.17-4_all.deb + sudo apt-get install -y ./libffi6_3.2.1-8_amd64.deb + sudo apt-get install -y ./libllvm6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + sudo apt-get remove python-is-python3 + sudo apt-get install -y ./python-is-python2_2.7.17-4_all.deb + sudo apt-get install -y ./clang-format-6.0_6.0.1~svn334776-1~exp1~20190309042703.125_amd64.deb + cd .. + shell: bash + - name: "Clang format checker script" + run: ./scripts/misc/clang_format_ci.sh + shell: bash + - name: Store formatting check results + uses: actions/upload-artifact@v7 + with: + name: clang-format-diff + path: ${{ env.CLANG_FORMAT_FILE }} + - name: Verify check result + run: | + set +x + if [ -s ${CLANG_FORMAT_FILE} ] ; then + echo "Unformatted files are detected. " + echo "You may apply provided patch. Download from the workflow summary and unpack to root of repository." + echo "Then run: git apply $CLANG_FORMAT_FILE" + exit 1 + fi + shell: bash \ No newline at end of file