On Fri, 27 May 2022 at 13:04, Matt Juntunen <matt.a.juntu...@gmail.com>
wrote:

> +1 as well.
>
> Thanks, Alex! I have spent quite a bit of time refreshing the Travis
> build page over and over waiting for my builds to start, so this will
> be a welcome change :-)
>

I have added workflows to:

- Numbers
- Statistics
- Geometry

using a similar configuration to RNG.

All can build the main modules in JDK 8, 11, 17 with the default maven
goal. The examples modules have extra requirements. Note here that the
previous travis setup would only build the parent module for the examples,
i.e. no recursion into the actual modules. Thus the previous CI was not
actually building the examples. With the GH action the target directory can
be set to the examples directory and then maven will recursively build all
child example modules.

Geometry required a more lenient goal to build the examples. Spotbugs
failed locally with JDK 17 for the JMH module. Feel free to have a look and
see what you think.

Note that building the examples modules, especially JMH, in numbers,
statistics and rng also requires some tweaks. PMD is typically set to not
fail the build (or simply to disabled for JMH to ignore all the generated
files).

RNG and Numbers cannot build the examples with JDK 8 and so currently only
target JDK 11. Thus it works with the default goal. Under JDK 17 I think it
would fail for the javadoc. I plan to get it to build on JDK 17 in the
future as this often spots issues that JDK 11 javadoc will ignore.

I have not yet tackled Math as its travis config only ever used JDK 8.
There may be a lot of issues with JDK 11 and 17 so I am leaving that for
another day when I have had a chance to test locally.

The codecov configuration for multiple modules requires a single line list
of files. For unknown reasons a valid multi-line YAML entry in quotes does
not concatenate and strip whitespace as expected. I initially missed this
as it is not reported as invalid YAML. But the coverage reports only had
the first module present.

IIRC once the coverage has made a few submissions then codecov starts
building nice reports. URLs should be:

https://app.codecov.io/gh/apache/commons-geometry
https://app.codecov.io/gh/apache/commons-numbers
https://app.codecov.io/gh/apache/commons-statistics
https://app.codecov.io/gh/apache/commons-rng

Final note is that the GH actions typically take a few minutes to complete
after a push. Thus I could test setup very quickly and correct errors. When
all is running smoothly we can disable travis and update the build and
coverage badges in the README.md files.

Alex

Reply via email to