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]

Reply via email to