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