Jerome Prinet created HDDS-16940:
------------------------------------
Summary: Declare surefire system property paths as Develocity
inputs to make test goals cacheable and allow Predictive Test Selection
Key: HDDS-16940
URL: https://issues.apache.org/jira/browse/HDDS-16940
Project: Apache Ozone
Issue Type: Improvement
Components: build
Reporter: Jerome Prinet
Surefire passes several paths under the module's _target/_ directory to tests
as system properties (root _pom.xml_):
- _test.build.dir_ / _test.build.data_ -> _target/test-dir_
- _hadoop.log.dir_ -> _target/log_
- _hadoop.tmp.dir_ -> _target/tmp_
- _java.security.krb5.conf_ -> _target/test-classes/krb5.conf_
- _java.library.path_ (argLine) -> native lib directories (_integration-test,
rocks-native, rocksdb-checkpoint-differ_)
The Develocity Maven extension requires such paths to be declared as goal
inputs or outputs. Otherwise, it discards the cache key of the _surefire:test_
goal:
{quote}Build caching was not enabled for this goal execution because system
property 'test.build.dir' with value '.../target/test-dir' was used as a
command line argument, but not declared as an input or output.
{quote}
*Without a cache key:*
- *test goals are never cacheable*, so local builds with the build cache
enabled re-run all tests;
- *Develocity Predictive Test Selection cannot learn* from Ozone builds. All
test classes are reported as "insufficient data" in the PTS simulator on
develocity.apache.org.
*Proposed fix*: declare these paths in the Develocity configuration of the
surefire goal, as localState for the _scratch_ directories and as inputs for
_krb5.conf_ and the native libraries.
A follow-up will enable PTS on the test goals once enough history has been
collected (about 2 weeks after this change).
We should also consider enabling build cache.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]