I thought this discussion was still ongoing, but it looks like CASSANDRA-16882 is now committed.
Could you give some context on why at least compilation is not done on every commit now? On Fri, Oct 8, 2021 at 4:12 PM Oleksandr Petrov <oleksandr.pet...@gmail.com> wrote: > I personally rarely push tickets/post a patch in an raw state, but since I > almost always have to approve jobs when it gets close to commit, I don't > mind also confirming utest runs. I'd say it'd be good to run at very least > a compilation step on every commit. I think it's fine if dtests/utests/jvm > tests require approval. > > On Wed, Oct 6, 2021 at 4:22 PM Andrés de la Peña <adelap...@apache.org> > wrote: > >> Hello all, >> >> The changes in CircleCI proposed in the previous messages are implemented >> in CASSANDRA-16882. They try to include the feedback from both the >> reviewers and the Slack discussion at >> https://the-asf.slack.com/archives/CK23JSY2K/p1631627458109000. >> >> The patch modifies the CircleCI config to have two pairs of j8/j11 >> workflows: >> >> * The javaX_pre-commit_tests workflows are meant to be used when a patch >> is >> definitively ready for final review and/or commit. They have a single >> approval step that starts all the basic tests, including unit tests, >> dtests, etc. Additionally, it has approval steps for those tests that are >> not generally required in every ticket, such as upgrade tests and the >> multiplexer. This pair of workflows is quite similar to what we currently >> have, and the main difference is that there is an approval step to start >> the build. >> >> * The javaX_separate_tests workflows are meant to be used in intermediate >> steps and special cases such as fixing flaky tests. All the jobs in these >> workflows have an individual approval step, so one can run any test job >> without wasting resources in the others. For example, it makes possible to >> repeatedly run a unit test without firing the entire JVM dtests. >> >> Here is an example of how the workflows would look like: >> >> https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-7-trunk-v04 >> >> Hopefully this approach would help us to save resources in intermediate >> development steps and special cases, while keeping the current concept of >> mandatory tests. >> >> If no one disagrees with this approach I'll commit the changes in a few >> days. >> >> On Fri, 27 Aug 2021 at 11:54, Andrés de la Peña <adelap...@apache.org> >> wrote: >> >> > Hi, >> > >> > CASSANDRA-16882 has patches for any of the mentioned configurations >> aimed >> > to save CircleCI resources. >> > >> > There are CircleCI runs showing how each approach would look like, plus >> an >> > additional fourth option: >> > >> > 1. Make the entire workflow optional: >> > >> https://app.circleci.com/pipelines/github/adelapena/cassandra/800/workflows/9cb8ca7b-ab57-431e-a22b-643d61c92c29 >> > 2. Make all the test jobs optional: >> > >> https://app.circleci.com/pipelines/github/adelapena/cassandra/798/workflows/a859cfbc-fdf8-4468-beb9-b2ee17dc1ae3 >> > 3. Make all the mandatory test jobs depend on a single optional job: >> > >> https://app.circleci.com/pipelines/github/adelapena/cassandra/802/workflows/0372f5d6-d1f0-4f0e-91a3-aa75a2712bae >> > 4. Combine 2 and 3 to have approval jobs for both individual tests and >> the >> > grouped mandatory tests: >> > >> https://app.circleci.com/pipelines/github/adelapena/cassandra/803/workflows/08ae07d5-6a1e-4e5b-bc0c-32bdc9b9f190 >> > >> > I think that the fourth option gives us more flexibility, because it >> > allows us to start any combination of tests we want while it keeps the >> > concept of required tests. >> > >> > On Thu, 12 Aug 2021 at 17:47, Andrés de la Peña < >> a.penya.gar...@gmail.com> >> > wrote: >> > >> >> Hello all, >> >> >> >> The current CircleCI configuration automatically runs the unit tests, >> JVM >> >> dtests and cqhshlib tests. This is done by default for every commit or, >> >> with some configuration, for every push. >> >> >> >> Along the lifecycle of a ticket it is quite frequent to have multiple >> >> commits and pushes, all running these test jobs. I'd say that >> frequently it >> >> is not necessary to run the tests for some of those intermediate >> commits >> >> and pushes. For example, one can show proofs of concept, or have >> multiple >> >> rounds of review before actually running the tests. Running the tests >> for >> >> every change can produce an unnecessary expense of CircleCI resources. >> >> >> >> I think we could make running those tests optional, as well as clearly >> >> specifying in the documentation what are the tests runs that are >> mandatory >> >> before actually committing. We could do this in different ways: >> >> >> >> 1. Make the entire CircleCI workflow optional, so the build job >> requires >> >> manual approval. Once the build is approved the mandatory test jobs >> would >> >> be run without any further approval, exactly as it's currently done. >> >> >> >> 2. Make all the test jobs optional, so every test job requires manual >> >> approval, and the documentation specifies which tests are mandatory in >> the >> >> final steps of a ticket. >> >> >> >> 3. Make all the mandatory test jobs depend on a single optional job, so >> >> we have a single button to optionally run all the mandatory tests. >> >> >> >> I think any of these changes, or a combination of them, would >> >> significantly reduce the usage of resources without making things less >> >> tested. The only downside I can think of is that we would need some >> >> additional clicks on the CircleCI GUI. What do you think? >> >> >> > >> > > > -- > alex p > -- alex p