Hi fellows,

The Develocity <https://ge.apache.org> integration of james-project build
has now been running for long enough that we can start seeing interesting
things beyond the raw build scans.
First we can give a short look at build trends
<https://ge.apache.org/scans/trends?search.relativeStartTime=P28D&search.rootProjectNames=*james*&search.tags=master&search.tasks=clean%2Cinstall&search.timeZoneId=Europe%2FParis#>
for the `clean install` command on master (the build stage), its hard to
derive actual trends since
- we only have 15 days of history
- we run on runners with varying cpu power ( build scans show T1C go from
16 to 24)
but it can be used to establish a baseline so we can compare later on
In average this stage took 9min10s
the week from feb 5 to feb 11th has had a lot more spread 5th-95th
percentile was 4m54s to 11m26s
last week was a bit more homogenous with the same percentiles being 7m54 -
10m18
this week so far looks more similar to last week than the previous, 7m12 -
9m4

Adding the local build cache added about 14s of overhead and provided no
benefits on CI (completely expected, maybe I should disable local caching
on CI since it spawns in a fresh env everytime) but this will be
interesting to compare with the remote build cache.

The tests
<https://ge.apache.org/scans/tests?search.relativeStartTime=P28D&search.rootProjectNames=*james*&search.timeZoneId=Europe%2FParis&tests.sortField=FLAKY>
monitoring is also interesting. This screen monitors 2 things:
- which tests fail the most often
- which tests are flaky
To measure this I enabled retries for surefire in this commit
<https://github.com/apache/james-project/commit/39a50194> so that a failing
test is retried once.
Failed is both tries failed
Flakyness is derived by looking at retries (1 fail followed by 1 success).

The results probably won't surprise you too much :

The test suite with most failures (11% of the runs) is
org.apache.james.blob.cassandra.CassandraBlobStoreTest
<https://ge.apache.org/scans/tests?search.relativeStartTime=P28D&search.rootProjectNames=*james*&search.timeZoneId=Europe%2FParis&tests.container=org.apache.james.blob.cassandra.CassandraBlobStoreTest>
The test suite with most flakyness (6% of the runs) is
org.apache.james.blob.cassandra.CassandraBlobStoreDAOTest
<https://ge.apache.org/scans/tests?search.relativeStartTime=P28D&search.rootProjectNames=*james*&search.timeZoneId=Europe%2FParis&tests.container=org.apache.james.blob.cassandra.CassandraBlobStoreDAOTest&tests.sortField=FLAKY>
The longest running testsuite is
org.apache.james.backends.rabbitmq.RabbitMQTest
<https://ge.apache.org/scans/tests?search.relativeStartTime=P28D&search.rootProjectNames=*james*&search.timeZoneId=Europe%2FParis&tests.container=org.apache.james.backends.rabbitmq.RabbitMQTest&tests.sortField=MEAN_DURATION>
at 4min27s

Top ten failing test suites
org.apache.james.blob.cassandra.CassandraBlobStoreTest
org.apache.james.blob.cassandra.cache.CachedBlobStoreTest
org.apache.james.blob.cassandra.CassandraBucketDAOTest
org.apache.james.blob.cassandra.CassandraDefaultBucketDAOTest
org.apache.james.blob.cassandra.CassandraPassTroughBlobStoreTest
org.apache.james.blob.cassandra.CassandraBlobStoreClOneTest
org.apache.james.blob.cassandra.CassandraBlobStoreDAOTest
org.apache.james.blob.cassandra.cache.CassandraBlobStoreCacheTest
org.apache.james.blob.objectstorage.aws.S3MinioTest
org.apache.james.blob.objectstorage.aws.S3BlobStoreDAOTest

Top ten flaky doesn't completely overlap
org.apache.james.blob.cassandra.CassandraBlobStoreDAOTest
org.apache.james.user.ldap.ReadOnlyUsersLDAPRepositoryWithLocalPartAsLoginNameTest$WhenEnableVirtualHosting$LocalPartLogin
org.apache.james.user.ldap.ReadOnlyUsersLDAPRepositoryWithLocalPartAsLoginNameTest$WhenEnableVirtualHosting$OneAppPasswordLogin
org.apache.james.user.ldap.ReadOnlyUsersLDAPRepositoryTest$WhenDisableVirtualHosting
org.apache.james.blob.cassandra.CassandraBlobStoreTest
org.apache.james.user.ldap.ReadOnlyUsersLDAPRepositoryWithLocalPartAsLoginNameTest$WhenEnableVirtualHosting
org.apache.james.blob.cassandra.CassandraPassTroughBlobStoreTest
org.apache.james.user.ldap.LdapHealthCheckTest
org.apache.james.user.ldap.ReadOnlyUsersLDAPRepositoryTest$WhenEnableVirtualHosting
org.apache.james.webadmin.integration.rabbitmq.vault.RabbitMQDeletedMessageVaultIntegrationTest

you can follow all the details on the apache develocity :D

Cheers
jean

Reply via email to