Skip to content

Enable integration tests on Windows #159

Enable integration tests on Windows

Enable integration tests on Windows #159

Triggered via pull request June 23, 2026 00:10
Status Failure
Total duration 40m 40s
Artifacts 14

ci.yml

on: pull_request
Detect Changes
7s
Detect Changes
License Check  /  License Check
4s
License Check / License Check
Link Check  /  Link Check
8s
Link Check / Link Check
Matrix: Builds / build
Matrix: Tests / test
Tests  /  Code Coverage
16m 34s
Tests / Code Coverage
C++ Checks  /  clang-format
17s
C++ Checks / clang-format
C++ Checks  /  clang-tidy
9m 11s
C++ Checks / clang-tidy
Generate Docs  /  Generate and verify docs
33s
Generate Docs / Generate and verify docs
Rust Release Check  /  Rust Release Check
Rust Release Check / Rust Release Check
Docker Builds  /  Build (docker-linux-arm64)
23m 23s
Docker Builds / Build (docker-linux-arm64)
Docker Builds  /  Build (docker-linux-x64)
32m 36s
Docker Builds / Build (docker-linux-x64)
Docker Builds  /  Build (cpp-example-collection-linux-arm64)
5m 53s
Docker Builds / Build (cpp-example-collection-linux-arm64)
Docker Builds  /  Build (cpp-example-collection-x64)
7m 42s
Docker Builds / Build (cpp-example-collection-x64)
Fit to window
Zoom out
Zoom in

Annotations

2 errors and 45 warnings
Tests / Test (windows-x64)
Process completed with exit code 1.
CI
Jobs (tests) failed
Builds / Build (macos-arm64)
The following taps are not trusted: aws/tap azure/bicep Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Prefer trusting only the specific formulae, casks or commands you need. Trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep Trust other specific casks and commands with: brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap azure/bicep Untap them with: brew untap aws/tap azure/bicep To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust
Builds / Build (macos-arm64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Builds / Build (macos-arm64)
Skipping azure/bicep because it is not trusted. Run `brew trust azure/bicep` to trust it.
Builds / Build (macos-arm64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Tests / Test (macos-arm64)
The following taps are not trusted: aws/tap azure/bicep Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Prefer trusting only the specific formulae, casks or commands you need. Trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep Trust other specific casks and commands with: brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap azure/bicep Untap them with: brew untap aws/tap azure/bicep For more information, see: https://docs.brew.sh/Tap-Trust
Tests / Test (macos-arm64)
The following taps are not trusted: aws/tap azure/bicep Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Prefer trusting only the specific formulae, casks or commands you need. Trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep Trust other specific casks and commands with: brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap azure/bicep Untap them with: brew untap aws/tap azure/bicep To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust
Tests / Test (macos-arm64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Tests / Test (macos-arm64)
Skipping azure/bicep because it is not trusted. Run `brew trust azure/bicep` to trust it.
Tests / Test (macos-arm64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Tests / Test (macos-arm64)
The following taps are not trusted: aws/tap azure/bicep Homebrew will ignore formulae, casks and commands from these taps when `HOMEBREW_REQUIRE_TAP_TRUST` is set. This will become the default in Homebrew 6.0.0 or 5.2.0, whichever comes first. Enable trust checks now with: export HOMEBREW_REQUIRE_TAP_TRUST=1 Trust specific formulae, casks or commands with: brew trust --formula <user>/<tap>/<formula> brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> or trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep You can trust all formulae, casks and commands from these taps with: brew trust aws/tap azure/bicep Prefer trusting only the specific formulae, casks or commands you need. Untap them with: brew untap aws/tap azure/bicep To keep allowing them by default during the transition: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release.
Builds / Build (macos-x64)
The following taps are not trusted: aws/tap azure/bicep Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Prefer trusting only the specific formulae, casks or commands you need. Trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep Trust other specific casks and commands with: brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap azure/bicep Untap them with: brew untap aws/tap azure/bicep To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust
Builds / Build (macos-x64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Builds / Build (macos-x64)
Skipping azure/bicep because it is not trusted. Run `brew trust azure/bicep` to trust it.
Builds / Build (macos-x64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Tests / Code Coverage
(WARNING) /home/runner/work/client-sdk-cpp/client-sdk-cpp/src/logging.cpp:53: Ignoring negative hits in: branch 7 taken -4.
Tests / Code Coverage
(WARNING) /home/runner/work/client-sdk-cpp/client-sdk-cpp/src/logging.cpp:33: Ignoring negative hits in: branch 7 taken -8.
Tests / Test (macos-x64)
The following taps are not trusted: aws/tap azure/bicep Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Prefer trusting only the specific formulae, casks or commands you need. Trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep Trust other specific casks and commands with: brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap azure/bicep Untap them with: brew untap aws/tap azure/bicep For more information, see: https://docs.brew.sh/Tap-Trust
Tests / Test (macos-x64)
The following taps are not trusted: aws/tap azure/bicep Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Prefer trusting only the specific formulae, casks or commands you need. Trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep Trust other specific casks and commands with: brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap azure/bicep Untap them with: brew untap aws/tap azure/bicep To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust
Tests / Test (macos-x64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Tests / Test (macos-x64)
Skipping azure/bicep because it is not trusted. Run `brew trust azure/bicep` to trust it.
Tests / Test (macos-x64)
Skipping aws/tap because it is not trusted. Run `brew trust aws/tap` to trust it.
Tests / Test (macos-x64)
The following taps are not trusted: aws/tap azure/bicep Homebrew will ignore formulae, casks and commands from these taps when `HOMEBREW_REQUIRE_TAP_TRUST` is set. This will become the default in Homebrew 6.0.0 or 5.2.0, whichever comes first. Enable trust checks now with: export HOMEBREW_REQUIRE_TAP_TRUST=1 Trust specific formulae, casks or commands with: brew trust --formula <user>/<tap>/<formula> brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> or trust installed formulae from these taps with: brew trust --formula azure/bicep/bicep You can trust all formulae, casks and commands from these taps with: brew trust aws/tap azure/bicep Prefer trusting only the specific formulae, casks or commands you need. Untap them with: brew untap aws/tap azure/bicep To keep allowing them by default during the transition: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release.
Docker Builds / Build (docker-linux-arm64)
The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding...
Builds / Build (windows-x64): src/ffi_client.h#L222
'livekit::FfiClient::listeners_': 'std::unordered_map<livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>,std::hash<int>,std::equal_to<livekit::FfiClient::ListenerId>,std::allocator<std::pair<const livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>>>>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): include/livekit/audio_frame.h#L88
'livekit::AudioFrame::data_': 'std::vector<int16_t,std::allocator<int16_t>>' needs to have dll-interface to be used by clients of 'livekit::AudioFrame' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): src/ffi_client.h#L233
'livekit::FfiClient::lifecycle_state_': 'std::atomic<livekit::FfiClient::LifecycleState>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): src/ffi_client.h#L229
'livekit::FfiClient::next_async_id_': 'std::atomic<unsigned __int64>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): src/ffi_client.h#L227
'livekit::FfiClient::pending_by_id_': 'std::unordered_map<livekit::FfiClient::AsyncId,std::unique_ptr<livekit::FfiClient::PendingBase,std::default_delete<livekit::FfiClient::PendingBase>>,std::hash<livekit::FfiClient::AsyncId>,std::equal_to<livekit::FfiClient::AsyncId>,std::allocator<std::pair<const livekit::FfiClient::AsyncId,std::unique_ptr<livekit::FfiClient::PendingBase,std::default_delete<livekit::FfiClient::PendingBase>>>>>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): src/ffi_client.h#L224
'livekit::FfiClient::next_listener_id': 'std::atomic<int>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): src/ffi_client.h#L222
'livekit::FfiClient::listeners_': 'std::unordered_map<livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>,std::hash<int>,std::equal_to<livekit::FfiClient::ListenerId>,std::allocator<std::pair<const livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>>>>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): include/livekit/audio_frame.h#L88
'livekit::AudioFrame::data_': 'std::vector<int16_t,std::allocator<int16_t>>' needs to have dll-interface to be used by clients of 'livekit::AudioFrame' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64): include/livekit/audio_frame.h#L88
'livekit::AudioFrame::data_': 'std::vector<int16_t,std::allocator<int16_t>>' needs to have dll-interface to be used by clients of 'livekit::AudioFrame' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Builds / Build (windows-x64)
Custom build for item "D:\a\client-sdk-cpp\client-sdk-cpp\build-release\CMakeFiles\da7240c96278d463ff60cb3c2ab9931d\livekit_ffi.dll.lib.rule" succeeded, but specified output "d:\a\client-sdk-cpp\client-sdk-cpp\client-sdk-rust\target\debug\livekit_ffi.dll.lib" has not been created. This may cause incremental build to work incorrectly. [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\build_rust_ffi.vcxproj]
Tests / Test (windows-x64): src/ffi_client.h#L222
'livekit::FfiClient::listeners_': 'std::unordered_map<livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>,std::hash<int>,std::equal_to<livekit::FfiClient::ListenerId>,std::allocator<std::pair<const livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>>>>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): include/livekit/audio_frame.h#L88
'livekit::AudioFrame::data_': 'std::vector<int16_t,std::allocator<int16_t>>' needs to have dll-interface to be used by clients of 'livekit::AudioFrame' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): src/ffi_client.h#L233
'livekit::FfiClient::lifecycle_state_': 'std::atomic<livekit::FfiClient::LifecycleState>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): src/ffi_client.h#L229
'livekit::FfiClient::next_async_id_': 'std::atomic<unsigned __int64>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): src/ffi_client.h#L227
'livekit::FfiClient::pending_by_id_': 'std::unordered_map<livekit::FfiClient::AsyncId,std::unique_ptr<livekit::FfiClient::PendingBase,std::default_delete<livekit::FfiClient::PendingBase>>,std::hash<livekit::FfiClient::AsyncId>,std::equal_to<livekit::FfiClient::AsyncId>,std::allocator<std::pair<const livekit::FfiClient::AsyncId,std::unique_ptr<livekit::FfiClient::PendingBase,std::default_delete<livekit::FfiClient::PendingBase>>>>>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): src/ffi_client.h#L224
'livekit::FfiClient::next_listener_id': 'std::atomic<int>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): src/ffi_client.h#L222
'livekit::FfiClient::listeners_': 'std::unordered_map<livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>,std::hash<int>,std::equal_to<livekit::FfiClient::ListenerId>,std::allocator<std::pair<const livekit::FfiClient::ListenerId,std::shared_ptr<livekit::FfiClient::ListenerSlot>>>>' needs to have dll-interface to be used by clients of 'livekit::FfiClient' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): include/livekit/audio_frame.h#L88
'livekit::AudioFrame::data_': 'std::vector<int16_t,std::allocator<int16_t>>' needs to have dll-interface to be used by clients of 'livekit::AudioFrame' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64): include/livekit/audio_frame.h#L88
'livekit::AudioFrame::data_': 'std::vector<int16_t,std::allocator<int16_t>>' needs to have dll-interface to be used by clients of 'livekit::AudioFrame' [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\livekit.vcxproj]
Tests / Test (windows-x64)
Custom build for item "D:\a\client-sdk-cpp\client-sdk-cpp\build-release\CMakeFiles\da7240c96278d463ff60cb3c2ab9931d\livekit_ffi.dll.lib.rule" succeeded, but specified output "d:\a\client-sdk-cpp\client-sdk-cpp\client-sdk-rust\target\debug\livekit_ffi.dll.lib" has not been created. This may cause incremental build to work incorrectly. [D:\a\client-sdk-cpp\client-sdk-cpp\build-release\build_rust_ffi.vcxproj]
Docker Builds / Build (cpp-example-collection-linux-arm64)
The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding...
CI
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: suzuki-shunsuke/required-status-check-action@2b5a46064846b09381852c2c4217e898f639e768. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
coverage-report
540 KB
sha256:95dfd3157536a030181707ac58078cb88838e3c47a44f64c2f905876b4a1a87e
livekit-cpp-docs
2.61 MB
sha256:5fb05ec5d99f2e1ca7c784fb50d4111125a69ee8d74cab128070b3d6fef00c55
livekit-cpp-sdk-docker-arm64
2.92 GB
sha256:2798f9553b93570f7db722e5a4adf70b7fb21b208810a58c88b787a2605264c7
livekit-cpp-sdk-docker-x64
3.05 GB
sha256:1e954d76aa24c3bee642e366a23d5667c5245669745c500b3fd096425d657cae
livekit-sdk-linux-arm64
23.1 MB
sha256:eb499caa002ba60d3275bfee2f315b8470252c15066c392b0690087b8d538cad
livekit-sdk-linux-x64
24.8 MB
sha256:7ab2853039a5b8cf6a02e8242c80af673fb1e89f9fc7dc8217bf03b1b1914a5d
livekit-sdk-macos-arm64
19 MB
sha256:562221f33a91685eabb1b6520be53901cf2d7c97b59b36294b91dbd512e78f16
livekit-sdk-macos-x64
19.8 MB
sha256:9de2b9a32270975cae8e0d009118a8d189a87a7e180519ad4dd1561c7b840dbc
livekit-sdk-windows-x64
11.3 MB
sha256:781dc94bc18634023e2e4ab32c9875fcffaee4b13d8e2477e3b3a548f49ca6be
test-results-linux-arm64
1.34 MB
sha256:a23017820eab9da38956dcafb3168549c0d95b1ffbb55b44787a7ed4cc778a7b
test-results-linux-x64
1.37 MB
sha256:7d27fec5c7c949e4938cb8d7d6cfd3fb890e1fc0fe8cb12eeb5bfa7813768203
test-results-macos-arm64
1.28 MB
sha256:d0b9a2a00bad55e2aa22fca99a4f26152d20d776dee30244a1a4976777df1287
test-results-macos-x64
1.54 MB
sha256:15d23240bfb338fc3402008318475720f805a00c294e3fa6dde5ff3d6667cddc
test-results-windows-x64
1.32 MB
sha256:361b286d7bac39d81eb95f1dda6f5b36b79dba57aaf23d61cc2ae42066f6fcfe