Hello Avro devs, What would be your opinion on introducing a second CI for Avro to execute the build and tests on Linux ARM64 architecture ?
Currently Avro uses GitHub Actions (GHA), which is a really nice CI platform for open source projects! But GHA has only x86_64 runner nodes. One could use self-hosted runners but they are not recommended for public repositories due to security concerns ( https://cwiki.apache.org/confluence/display/INFRA/GitHub+-+self-hosted+runners ). There are several GHA-like cloud-based CIs like CircleCI, CirrusCI and DroneIO but they are not allowed by Apache Infra team because they want write permissions to the repo. So, the only option at the moment is TravisCI! Some Apache projects have used TravisCI in the past but moved to GHA because of its better experience and because at some point TravisCI was too crouded and the wait-queue was too big. The wait-time is no more a problem these days, especially for the ARM64 nodes! In my experience most of the issues related to ARM64 in Big Data projects was due to data serialization libraries like Protobuf and Snappy which use native libraries and until some point they didn't come with binaries for aarch64. For Avro, CI on ARM64 would be beneficial mostly for the C and C++ modules but also for the interpreted language ones, e.g. Apache Pig does not build on ARM64 with Avro Java 1.7.7 but works fine with 1.8.2 (I didn't dig what exactly was the cause). If my proposal is accepted I volunteer to do all the required work! Regards, Martin
