Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
f8e67f8
[bfops/cargo-test-all]: cargo test covers all
bfops Apr 30, 2026
7221336
[bfops/cargo-ci-test]: cargo ci
bfops Apr 30, 2026
1a02624
[bfops/cargo-test-all]: remove cpp stuff
bfops Apr 30, 2026
fe011a2
Merge branch 'bfops/cargo-test-all' into bfops/cargo-ci-test
bfops Apr 30, 2026
6f8c15a
[bfops/cargo-test-all]: lints
bfops Apr 30, 2026
a90329f
[bfops/cargo-test-all]: Merge remote-tracking branch 'origin/master' …
bfops Apr 30, 2026
f8b89fb
[bfops/cargo-test-all]: update docs
bfops Apr 30, 2026
ed4859a
Apply suggestion from @bfops
bfops Apr 30, 2026
61898fa
[bfops/cargo-test-all]: revert
bfops Apr 30, 2026
3cdccbe
[bfops/cargo-test-all]: Merge branch 'bfops/cargo-test-all' of github…
bfops Apr 30, 2026
0f90ec8
[bfops/cargo-test-all]: Merge remote-tracking branch 'origin/bfops/ca…
bfops Apr 30, 2026
0c0e04d
Apply suggestion from @bfops
bfops May 1, 2026
d98137b
[bfops/cargo-test-all]: revert
bfops May 1, 2026
170ef8f
[bfops/flexible-csharp]: CI - C# test scripts accept SPACETIMEDB_SERV…
bfops May 1, 2026
e926a46
Merge branch 'bfops/flexible-csharp' into bfops/cargo-test-all
bfops May 1, 2026
2fdbeb4
[bfops/cargo-test-all]: fixhelp
bfops May 1, 2026
1dac831
[bfops/cargo-test-all]: more
bfops May 1, 2026
3d089e1
[bfops/cargo-test-all]: Address language test harness review
bfops May 1, 2026
85e45a8
Merge branch 'master' into bfops/cargo-test-all
bfops May 1, 2026
b183830
[bfops/cargo-test-all]: Address follow-up harness review
bfops May 1, 2026
107ebc6
[bfops/cargo-test-all]: Address unresolved harness review
bfops May 1, 2026
6fdf577
[bfops/cargo-test-all]: revert
bfops May 1, 2026
746a3ab
[bfops/cargo-test-all]: Address follow-up harness comments
bfops May 2, 2026
cc6d732
[bfops/cargo-test-all]: Inline TypeScript harness commands
bfops May 2, 2026
0fbec03
[bfops/cargo-test-all]: Address harness parsing review
bfops May 2, 2026
aabc71a
[bfops/cargo-test-all]: Address C# harness review
bfops May 4, 2026
452f7eb
[bfops/cargo-test-all]: Address harness output review
bfops May 4, 2026
6f2877e
[bfops/cargo-test-all]: Stream harness command output
bfops May 4, 2026
b11eda9
[bfops/cargo-test-all]: Move C# list dispatch to harness entrypoint
bfops May 4, 2026
8b7c00a
[bfops/cargo-test-all]: Inline C# harness SDK args
bfops May 4, 2026
0150d6a
[bfops/cargo-test-all]: Pass harness args explicitly
bfops May 4, 2026
339a3f4
[bfops/cargo-test-all]: fix
bfops May 4, 2026
ca77aee
Merge branch 'master' into bfops/cargo-test-all
bfops May 4, 2026
50b7bd7
[bfops/cargo-test-all]: move `dotnet test`
bfops May 5, 2026
bb7a75c
[bfops/cargo-test-all]: remove
bfops May 5, 2026
b1e865a
[bfops/cargo-test-all]: generate
bfops May 5, 2026
51a5eb8
[bfops/cargo-test-all]: revert
bfops May 5, 2026
cfc3fe1
[bfops/cargo-test-all]: fix
bfops May 5, 2026
3c9813b
[bfops/cargo-test-all]: update
bfops May 5, 2026
6b1c077
[bfops/argument-null-exception]: Fix ArgumentNullException
bfops May 5, 2026
a46ce8d
[bfops/argument-null-exception]: format
bfops May 5, 2026
09b2e91
Merge branch 'bfops/argument-null-exception' into bfops/cargo-test-all
bfops May 5, 2026
261e09e
[bfops/cargo-test-all]: Merge branch 'bfops/cargo-test-all' of github…
bfops May 5, 2026
6e1d0c9
[bfops/cargo-test-all]: mybe fix?
bfops May 5, 2026
e538ece
[bfops/cargo-test-all]: more server url
bfops May 5, 2026
c7b9463
[bfops/cargo-test-all]: Merge remote-tracking branch 'origin/master' …
bfops May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 2 additions & 56 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -760,32 +760,6 @@ jobs:
with:
global-json-file: global.json

- name: Override NuGet packages
run: |
dotnet pack crates/bindings-csharp/BSATN.Runtime
dotnet pack crates/bindings-csharp/Runtime

# Write out the nuget config file to `nuget.config`. This causes the spacetimedb-csharp-sdk repository
# to be aware of the local versions of the `bindings-csharp` packages in SpacetimeDB, and use them if
# available. Otherwise, `spacetimedb-csharp-sdk` will use the NuGet versions of the packages.
# This means that (if version numbers match) we will test the local versions of the C# packages, even
# if they're not pushed to NuGet.
# See https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file for more info on the config file.
cd sdks/csharp
./tools~/write-nuget-config.sh ../..

- name: Restore .NET solution
working-directory: sdks/csharp
run: dotnet restore --configfile NuGet.Config SpacetimeDB.ClientSDK.sln

- name: Run .NET tests
working-directory: sdks/csharp
run: dotnet test -warnaserror --no-restore

- name: Verify C# formatting
working-directory: sdks/csharp
run: dotnet format --no-restore --verify-no-changes SpacetimeDB.ClientSDK.sln

- name: Install Rust toolchain
uses: dsherret/rust-toolchain-file@v1
- name: Set default rust toolchain
Expand Down Expand Up @@ -820,23 +794,8 @@ jobs:
cargo build --release -p v8
fi

- name: Install SpacetimeDB CLI from the local checkout
run: |
export CARGO_HOME="$HOME/.cargo"
echo "$CARGO_HOME/bin" >> "$GITHUB_PATH"
cargo install --force --path crates/cli --locked --message-format=short
cargo install --force --path crates/standalone --features allow_loopback_http_for_tests --locked --message-format=short
# Add a handy alias using the old binary name, so that we don't have to rewrite all scripts (incl. in submodules).
ln -sf $CARGO_HOME/bin/spacetimedb-cli $CARGO_HOME/bin/spacetime

- name: Check quickstart-chat bindings are up to date
working-directory: sdks/csharp
run: |
bash tools~/gen-quickstart.sh
"${GITHUB_WORKSPACE}"/tools/check-diff.sh examples~/quickstart-chat || {
echo 'Error: quickstart-chat bindings have changed. Please run `sdks/csharp/tools~/gen-quickstart.sh`.'
exit 1
}
- name: Run C# tests
run: cargo ci csharp-tests

# TODO: Re-enable this once csharp is using the v2 ws api.
# - name: Check client-api bindings are up to date
Expand All @@ -848,19 +807,6 @@ jobs:
# exit 1
# }

- name: Start SpacetimeDB
run: |
spacetime start &
disown

- name: Run regression tests
run: |
bash sdks/csharp/tools~/run-regression-tests.sh
tools/check-diff.sh sdks/csharp/examples~/regression-tests || {
echo 'Error: Bindings are dirty. Please run `sdks/csharp/tools~/gen-regression-tests.sh`.'
exit 1
}

internal-tests:
name: Internal Tests
needs: [lints]
Expand Down
28 changes: 28 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ members = [
"crates/execution",
"crates/expr",
"crates/guard",
"crates/language-test-support",
"crates/typescript-tests",
"crates/csharp-tests",
"crates/fs-utils",
"crates/lib",
"crates/metrics",
Expand Down Expand Up @@ -130,6 +133,7 @@ spacetimedb-durability = { path = "crates/durability", version = "=2.2.0" }
spacetimedb-execution = { path = "crates/execution", version = "=2.2.0" }
spacetimedb-expr = { path = "crates/expr", version = "=2.2.0" }
spacetimedb-guard = { path = "crates/guard", version = "=2.2.0" }
spacetimedb-language-test-support = { path = "crates/language-test-support", version = "=2.2.0" }
spacetimedb-lib = { path = "crates/lib", default-features = false, version = "=2.2.0" }
spacetimedb-memory-usage = { path = "crates/memory-usage", version = "=2.2.0", default-features = false }
spacetimedb-metrics = { path = "crates/metrics", version = "=2.2.0" }
Expand Down
20 changes: 20 additions & 0 deletions crates/csharp-tests/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[package]
name = "spacetimedb-csharp-tests"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
publish = false

[[test]]
name = "csharp"
path = "tests/csharp.rs"
harness = false

[dev-dependencies]
anyhow.workspace = true
clap.workspace = true
quick-xml.workspace = true
spacetimedb-language-test-support.workspace = true

[lints]
workspace = true
Loading
Loading