The project modules are organized by hexagonal architecture style.
It defines project shared dependencies, which includes springboot dependencies, spock test framework, and groovy plugin.
- It defines interfaces which are required by feature, being implemented by adapter;
- It defines shared msbuild model classes, bazel protobuf metadata, and related gRPC dependencies, which are being used by feature and adapter;
It defines features to be used by end user, it depends on contract model at compile time, calls adapter model implementations at run time.
It implements interfaces defined in contract model, it only depends on contract model, not feature module.
Integrate adapter and feature together to run end to end integration tests.
- Install Bazel on Windows, make sure it is available in your PATH
- Install lombok plugin in intellij to support lombok annotations.
- Clean up any manual bazel build results, if you do not clean it, the integration tests will fail.
cd bazel-to-msbuild\integration\src\test\resources
cd stage1
bazel clean
cd ..\stage2
bazel clean
cd ..\stage3
bazel clean
cd ..\dll
bazel clean
- Run tests
cd bazel-to-msbuild
mvn clean test
- When code pushed to release branch, it auto deploy maven packages, zip and upload b2m.zip to a new pre-release;
- Manually check content, update release notes, uncheck pre-release, then do a real release;
- Manually create a PR to merge code from release back to main, merge code back to main;