> On 4 Apr 2020, at 01:49, Bruno P. Kinoshita <ki...@apache.org> wrote:
> 
> Build passed locally from tag, with `mvn clean test install site` after 21mins

Hi Bruno,

This is a known issue with the multi-module build when the ‘site-content’ 
directory is missing and you run the ‘site’ target as it downloads the existing 
site. It does this for each module. The more modules, the bigger the problem.

The site-content folder is just a convenience when staging a new site during a 
release. Perhaps this entire process should be rethought as the directory 
serves no other purpose that I know of. 

This has been fixed in commons RNG using a custom setup-checkout profile. 
Either we:

1. copy the solution in commons RNG which does the checkout only for the parent 
module and creates a dummy directory for child modules, or
2. change the profile to not automatically trigger when ’site-content’ is 
missing. The profile can be optional and used only in the release process when 
staging the site.

Note that the site generates automatically without this folder. If you create 
an empty folder 'site-content' and run 'mvn site' then it all works fine.

A clean checkout from the tag:

mvn package site

12:58 min


Clean check from the tag:

mkdir ./commons-numbers-arrays/site-content
mkdir ./commons-numbers-field/site-content
mkdir ./commons-numbers-gamma/site-content
mkdir ./commons-numbers-fraction/site-content
mkdir ./commons-numbers-core/site-content
mkdir ./commons-numbers-angle/site-content
mkdir ./commons-numbers-primes/site-content
mkdir ./commons-numbers-combinatorics/site-content
mkdir ./commons-numbers-rootfinder/site-content
mkdir ./site-content
mkdir ./commons-numbers-complex/site-content
mkdir ./commons-numbers-quaternion/site-content
mvn package site

3:46 min

So disabling the profile to checkout the site would save 2/3 of the build time 
from a clean checkout. Note: Currently a repeat build in the same git clone is 
fast as the site-content directory already already exists.

The multi-module build also takes a while generating the site as the Jira 
report is built for each module and this is the slowest report. We have three 
options here. 

1. Build the full Jira report in each sub-module
2. Disable the Jira report in each sub-module
3. Build a partial Jira report in each sub-module

In RNG we use option 3. The partial report is built using keyword tags on the 
Jira tickets to identify to a module. The report then only contains items that 
relate to the module. This is useful but the site generation takes the same 
amount of time because generation of a full Jira report or partial report takes 
the same time. It also requires diligent keyword tagging of tickets.

Alex

Reply via email to