Great experience so far, it "just works". My primary CI was Circle CI until
now around which I have developed a lot of custom scripting but seeing this
I think I will gravitate towards pre-ci from now on. What I especially like
is the overall responsiveness of this Jenkins instance, post-commit Jenkins
CI is way slower, loading a lot. This just reacts instantly.

On Wed, Aug 27, 2025 at 11:50 PM Mick <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 --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 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)
>
>
>
>

Reply via email to