blob: bbc5e07864f821edfc5603663891972539b15bc0 [file] [view]
## Prerequisites
* .NET 6 SDK
* Java 11 SDK
## Build Java
In repo root:
`./gradlew assemble compileIntegrationTestJava`
Or a faster variant:
`./gradlew assemble compileIntegrationTestJava -x check -x assembleDist -x distTar -x distZip --parallel`
## Build .NET
In this dir: `dotnet build`
## Run Tests
In this dir: `dotnet test --logger "console;verbosity=normal"`
Specific test: `dotnet test --logger "console;verbosity=normal" --filter ClientSocketTests`
## Start a Test Node
`gradlew :ignite-runner:runnerPlatformTest --no-daemon`
To debug or profile Java side of the tests, run `org.apache.ignite.internal.runner.app.PlatformTestNodeRunner` class in IDEA with a debugger or profiler,
then run .NET tests with `dotnet test` or `dotnet test --filter TEST_NAME`. When a server node is present, .NET tests will use it instead of starting a new one.
The test node will stop after 30 minutes by default.
To change this, set `IGNITE_PLATFORM_TEST_NODE_RUNNER_RUN_TIME_MINUTES` environment variable.
To ensure that external test node is used, and a new one is never started by .NET test code, set `IGNITE_DOTNET_REQUIRE_EXTERNAL_SERVER` to `true`.
## Static Code Analysis
Static code analysis (Roslyn-based) runs as part of the build and includes code style check. Build fails on any warning.
* Analysis rules are defined in `.editorconfig` files (test projects have relaxed rule set).
* License header is defined in `stylecop.json`
* Warnings As Errors behavior is enabled in `Directory.Build.props` (can be disabled locally for rapid prototyping so that builds are faster and warnings don't distract)
## Release Procedure
### Update Version
Update version number in `version.json`.
### Build Binaries
`dotnet publish Apache.Ignite --configuration Release --output release/bin`
### Pack NuGet
`dotnet pack Apache.Ignite --configuration Release --include-source --output release/nupkg`
### Build Docs
1. `dotnet tool restore`
2. `dotnet docfx docs/docfx.json`
Resulting docs are in `docs/_site`.
To view them locally, run `dotnet docfx docs/docfx.json --serve`.