Skip to content

Azure/azure-signalr-client-e2e

Repository files navigation

Azure SignalR Client E2E Tests

Dev SDK Stable SDK

This repository hosts multiple languages client E2E tests for Azure SignalR. It helps verify all language clients work correctly with Azure SignalR Service in a single pass.

Test Coverage

The client E2E testing aims to cover all combinitions of ASRS Runtime version and Client SDK version:

Client SDK (Dev) Client SDK (Stable)
ASRS Runtime (Dev) Internal Pipeline Internal Pipeline
ASRS Runtime (Production) GitHub CI GitHub CI

This repository covers the bottom row (GitHub CI). The top row is tested by an internal pipeline.

SDK version sources

Each SDK is tested against both a dev and a stable version:

SDK Dev version Stable version
.NET Azure/azure-signalr dev branch Latest stable (non-preview) on NuGet
Java Latest (including preview) on Maven Central Latest stable (non-preview) on Maven Central
Swift dotnet/signalr-client-swift dev branch Latest stable (non-preview) GitHub tag

Version examples

SDK Dev version (example) Stable version (example)
.NET commit 8c944ee9 (GitHub) 1.33.0 (NuGet)
Java 11.0.0-preview.1.26104.118 (Maven Central) 10.0.3 (Maven Central)
Swift commit dd96829 (GitHub) tag v1.0.0 (GitHub)

The exact versions tested in each run are recorded in the release notes: Dev SDK releases · Stable SDK releases.

Releases

Each CI run publishes a GitHub Release containing pre-built test artifacts (e2e-artifacts-{dev,stable}.tar.gz). The archive includes the compiled test server, .NET / Java / Swift test binaries, and run-from-artifacts.sh so tests can be re-run without rebuilding.

Release Description
latest-dev Always points to the most recent Dev SDK run
latest-stable Always points to the most recent Stable SDK run
dev-YYYYMMDD-HHMMSS Timestamped history for each Dev run
stable-YYYYMMDD-HHMMSS Timestamped history for each Stable run

Release notes record the exact SDK versions tested. Browse all: Dev releases · Stable releases.

Cloning with submodules

The Swift client and .NET SDK are included as Git submodules. Always clone the repository with submodules enabled:

git clone --recurse-submodules https://github.com/Azure/azure-signalr-client-e2e.git

If you already cloned without submodules, run:

git submodule update --init --recursive

Install Prerequisites

Requirements

  • .NET SDK: 8.0
  • Java JDK: OpenJDK 21
  • Maven: >= 3.6.3
  • Swift toolchain: >= 6.0

You can either install them manually or run the provided script.

  • Automated install (Recommended):

    Run ./install-prerequisite.sh

  • Manual install:

    Just make sure each tool is on PATH and meets the versions above.

Quick verification

dotnet --version; javac -version; mvn -v | head -n1; swift --version

Running the tests

1. Build artifacts

./build-artifacts.sh

This compiles the test server, .NET / Java / Swift test binaries into ./artifacts/.

2. Run tests from artifacts

export E2E_CONNECTION_STRING="<your-azure-signalr-connection-string>"
./run-from-artifacts.sh

The script starts a local test server, runs all test suites (Java, Swift, .NET), and exits with a non-zero code if any suite fails.

Note: .NET tests do not use the local test server. They spin up an in-process Kestrel server that connects directly to Azure SignalR Service via AddAzureSignalR(). Java and Swift tests connect through the local test server.

CI Workflows

Three workflows run in sequence: Sync SubmodulesClient E2E (Dev SDK)Client E2E (Stable SDK).

Triggered by every push to master, daily at 00:00 UTC, or manually.

  • Re-run a failed test: Click a badge above → open the failed run → Re-run failed jobs.
  • Manually trigger: Click a badge above → Run workflow.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors