This doesn't update everything -- it leaves out some of the more complicated changes (architecture, code-structure, configuration, install, and proxy-setup). Those will require more complete rewrites, so I'm punting them to a future PR.
1.6 KiB
Gradle Build Documentation
Initial Setup
Install Gradle on your local host, then run the following commands from this directory:
# One-time command to add gradle wrapper:
gradle wrapper
# Start the build:
./gradlew build
From now on, use './gradlew build' or './gradlew test' to build and test your changes.
To upgrade to a new Gradle version for this project, use:
gradle wrapper --gradle-version version-number
Deploy to GCP Test Projects
If your configuration is up to date with the proper test projects configured, you can deploy to GCP through the Gradle command line.
Use the Gradle task deployNomulus to build and deploy to a GCP test project
providing the test project as an argument, e.g.
./gradlew deployNomulus -Penvironment=alpha
Notable Issues
Test suites (RdeTestSuite and TmchTestSuite) are ignored to avoid duplicate execution of tests. Neither suite performs any shared test setup routine, so it is easier to exclude the suite classes than individual test classes. This is the reason why all test tasks in the :core project contain the exclude pattern '"/TestCase.", "/TestSuite."'
Some Nomulus tests are not hermetic: they modify global state, but do not clean
up on completion. This becomes a problem with Gradle. In the beginning we forced
Gradle to run every test class in a new process, and incurred heavy overheads.
Since then, we have fixed some tests, and manged to divide all tests into two
suites that do not have intra-suite conflicts (fragileTest and standardTest)