[ 
https://issues.apache.org/jira/browse/CASSANDRA-16882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17425744#comment-17425744
 ] 

Andres de la Peña commented on CASSANDRA-16882:
-----------------------------------------------

Here are the patches for all the branches:
||patch||CI||
|[3.0|https://github.com/apache/cassandra/compare/cassandra-3.0...adelapena:16882-option-7-3.0-v05]|[workflows|https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-7-3.0-v05]|
|[3.11|https://github.com/apache/cassandra/compare/cassandra-3.11...adelapena:16882-option-7-3.11-v05]|[workflows|https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-7-3.11-v05]|
|[4.0|https://github.com/apache/cassandra/compare/cassandra-4.0...adelapena:16882-option-7-4.0-v05]|[workflows|https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-7-4.0-v05]|
|[trunk|https://github.com/apache/cassandra/compare/trunk...adelapena:16882-option-7-trunk-v05]|[workflows|https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-7-trunk-v05]|

I have modified the {{java8_separate_tests}}/{{java11_separate_tests}} 
workflows to have an additional approval step for the build. With this change 
commits and pushes don't run anything at all until manually started. It adds an 
extra click for those workflows, but I think that this way the graphs keep 
better symmetry with the 
{{java8_pre-commit_tests}}/{{java11_pre-commit_tests}}, so all the four 
workflows have the same organisation and number of columns.

As for 3.0 and 3.11, I have tried to homogenise the way the jobs are organised. 
Specifically, the approval steps depended on the build job, so one had to wait 
for the completion of the build before starting the optional tests. I have 
modified this to adopt the 4.0/trunk organisation, where the approval jobs 
don't depend on the build and it's the approved job what depends on both the 
build and its approval job.

I have sent [this 
message|https://lists.apache.org/thread.html/r02822bd5071029b95037b44a2d31fe5bb1c98d9f2391fd0443ca8684%40%3Cdev.cassandra.apache.org%3E]
 to the dev mail list informing about the proposed changes.

Just to summarise what we get with this ticket:
 * Intermediate commits/pushes don't spend any resources at all unless their 
jobs are manually approved.
 * For changes that are ready for a final round of review or that are ready to 
commit, the {{javaX_pre-commit_tests}} workflows have a single and easily 
visible button that runs the most relevant tests. In the future we can always 
change the set of tests that should be run here.
 * For intermediate steps or special cases such as fixing flaky tests, the 
{{javaX_separate_tests}} workflows allow to run any combination of tests 
individually.

> Save CircleCI resources with optional test jobs
> -----------------------------------------------
>
>                 Key: CASSANDRA-16882
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16882
>             Project: Cassandra
>          Issue Type: Task
>          Components: CI
>            Reporter: Andres de la Peña
>            Assignee: Andres de la Peña
>            Priority: Normal
>
> This ticket implements the addition of approval steps in the CircleCI 
> workflows as it was proposed in [this 
> email|https://lists.apache.org/thread.html/r57bab800d037c087af01b3779fd266d83b538cdd29c120f74a5dbe63%40%3Cdev.cassandra.apache.org%3E]
>  sent to the dev list:
> 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:
>  # 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.
>  # 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.
>  # 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to