A big thank you to Mick for leading the effort. This has already made a huge difference for contributors, myself included, and is a great step forward for the community. Grateful for the collaboration!
Thanks Himanshu From: Dmitry Konstantinov <netud...@gmail.com> Reply-To: "dev@cassandra.apache.org" <dev@cassandra.apache.org> Date: Thursday, August 28, 2025 at 6:05 AM To: "dev@cassandra.apache.org" <dev@cassandra.apache.org> Subject: RE: [EXTERNAL] [ANNOUNCE] Pre-commit CI @ pre-ci.cassandra.apache.org , an AWS donation CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe. It’s a huge milestone! Many thanks to Mick and everyone else involved in setting up and configuring the CI. Thanks also to Amazon and the other companies that donated hardware resources to keep the infrastructure running. This is especially helpful for committers who don’t have the resources to run their own CI system, like me, and it makes the contribution process more efficient and pleasant. Hopefully, this will lead to more contributions and contributors. On Wed, 27 Aug 2025 at 22:50, Mick <m...@apache.org<mailto:m...@apache.org>> wrote: tl;dr I am super excited to share with you all the availability of https://pre-ci.cassandra.apache.org , made possible from a very generous donation by Amazon. Using AWS donated credits we now have a fast open-source CI system for pre-commit testing. This is intended primarily for committers (and trusted contributors) that do not have access to a company-private CI system. Contact me off-list if that's you. … This huge donation from Amazon and builds on years of work on our CI and testing scripts, accumulating in CASSANDRA-18145¹. The project now has an AWS account (controlled by ASF Infra), and into it Amazon has provided a significant amount of credits for the purpose of our pre-commit testing. In the C* project pre-commit CI has been a major hurdle and blocker to new contributors, unaffiliated committers, and generally getting patches committed. Too much of our momentum has been led by contributors and committers employed in companies that can pay to run their own in-house CI systems. It is not in the slightest their fault, nor their employers' priority, but it has held the project back from its potential as well as not being in the proper spirit of an open source project and community. Amazon has recognised this and stepped forward as a true champion of our open-source community, providing both the AWS credits, as well as time in helping setting it up, testing and documenting it. The work has also involved many steps and people the past five years! since that first mention of a "Stand-alone Pipeline Run"². This work has gone from having a standalone Jenkinsfile, testing images and scripts that can be used anywhere, both pre-commit and post-commit, to a Helm chart to deploy ci-cassandra.a.o Jenkins clones in any k8s cluster of your choosing. This has also included getting our CI pipeline generating aggregated test result artefact files that can easily be attached to jira tickets, and archived permanently. These objectives you can see listed in CASSANDRA-18137³. For all this special thanks goes out to Richa Mishra, Nishant Barola, Aleksandr Volochnev, Brandon Hsieh, Himanshu Jindal, Steve Mayszak, Dmitry Konstantinov, Maxim Muzafarov, Berenguer Blasi, David Capwell, Brandon Williams, Ekaterina Dimitrova, Henrik Ingo, Shankar Ramaswamy, Josh McKenzie, Stefan Miklosovic, Gavin McDonald and no doubt others I've forgotten! Yeah, it feels like almost everyone, it has been a journey! It is not perfect: there is (always) room for improvement; and for now I think next steps should be around further time+cost optimisations and pipeline configurability. I'm hoping folk can jump in and help with these. What is provided today is a way for everyone anywhere to immutably provision a ci-cassandra.a.o clone on k8s. You avoid any need to install, know or operate Jenkins (you do not even have to ever once open the Jenkins UI – see below) and you do not need to wait more than a few hours to run the "post-commit" pipeline with 140-200k tests. The correlation to pipeline time is now how many nodes your k8s can scale to (ofc limitations exist, but those fine details are other convo), and with the cluster scaling down to one node you get a cost-effective pay-what-you-use deployment. https://pre-ci.cassandra.apache.org runs on EKS, and another instance for DataStax employees ( http://ci-cassandra.infra.datastax.com ) has been in use on GKE for over a year now. We have a CI system that is relatively ops-free, has the same turnaround time as CircleCI and costs over an order of magnitude less. This has been designed for downstream C* products to be able to re-use, and indeed it is a setup that any project can easily use. The setup introduces repeatability in how we test. The Jenkinsfile, the docker images and the test scripts, are the same everywhere, including locally. Reproducing obscure failures in post-commit should be easier. If you would like to set up your own ci-cassandra clone, the docs for both GKE are found in-tree under .jenkins/k8s/ ,and the docs for EKS coming soon. There is a command line interface that can be used for both provisioning as well as everyday CI use. Some examples: ``` # Install the ci-cassandra helm chat in your current k8s context, creating the ci-cassandra clone .build/run-ci --only-setup # Run your current branch through CI with the skinny profile. # Waits til completion, and creates ci_summary*.html & results_details*.tar.xz files to attach to jira .build/run-ci --profile skinny # If you don't have kubectl access to the cluster, just specify the jenkins url and user .build/run-ci --profile skinny --url pre-ci.cassandra.apache.org<http://pre-ci.cassandra.apache.org> --user myuser ``` Huge huge praise and thanks to Amazon here: they really deserve it, they have taken this over the finish line; but the opportunity deserves to repeat all our gratitudes to all the very significant ci-cassandra.apache.org<http://ci-cassandra.apache.org> donations that help us keep the project running: NetApp, DataStax, Huawei and iland. ¹) CASSANDRA-18145 – Run entire Cassandra Jenkins in any k8s (immutable provisioning) ²) https://lists.apache.org/thread/ch768l8y95npno9o9y130fjob1h675z8 ³) CASSANDRA-18137 – Repeatable ci-cassandra.a.o (Epic) -- Dmitry Konstantinov