Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[hawk-dev] Restructuring CI builds?

Hi everyone,

In the last few days, I've been thinking how we can best restructure our CI builds. The integration tests take a long time, and they need to be repeated for each backend, so we end up with long delays whenever a new commit happens. If any of the backends fail (Greycat is shaky at the moment - I'm investigating), that's 2h+ that we have wasted.

I'm considering several options to restructure the CI jobs. One option is to break up Hawk into multiple builds:

- Core: most plugins and the OrientDB backend
- Time-awareness: Greycat backend and all "time-awareness" plugins
- Neo4j backend: just as a red/green light to see if it works as expected, with no real distribution
- Server: Thrift API and client/server products

The idea would be to have Core build its own update site, then time-awareness builds an update site on top of that, and Server uses those two update sites as its target platform. Then we have users go through a composite update site that brings all three together, so they are not aware of this complexity.

A much more immediate option is to still do this split, but have Core build + set up downloads for everything while still only running the OrientDB tests, and then run the Neo4j and Greycat tests as separate jobs. In the main Hawk website, we'd have a set of "traffic lights" mentioning the current status of Core + the various backends in the interim version. The danger with this option is that a user could download a buggy interim of a non-core backend by mistake.

Any thoughts about this?

Cheers,
Antonio

Back to the top