cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andres de la Peña (Jira) <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-16882) Save CircleCI resources with optional test jobs
Date Mon, 27 Sep 2021 16:52:00 GMT

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

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

{quote}Around the simplified version - visually only two columns look better to me but on
the other hand my understanding is that now we won't have to wait until the build is ready
to start the tests but we start build which triggers the tests on its own? Is that correct?
I don't have strong preference around any of the two versions.
{quote}
In both cases we don't have to wait to press any of the optional buttons in the pre-commit
workflow. The difference is that with [this|https://app.circleci.com/pipelines/github/adelapena/cassandra/893/workflows/47ae65f7-b8ca-4046-a124-4bc86ceb52e8]
approach the build is always run (needed or not) and we have to press the {{start_pre-commit_tests}}
button to start the grouped tests. In contrast, with [the other approach|https://app.circleci.com/pipelines/github/adelapena/cassandra/892/workflows/be35fdcb-d865-46c3-8370-55315010a2b9]
nothing is built by default and we have to press the {{start_jx_build}} to start both the
build and the test. In other words, the second approach saves us running the build job in
intermediate commits. This job is relatively lightweight compared to the tests so I'm not
sure it is worth the extra column, wdyt?
{quote}I would rename the root 'j8_build' alike jobs, that trigger the downstream actual tests,
to 'j8_start_tests'
{quote}
I'm not sure I understand this. Do you mean the {{j8_build}} jobs in [this|https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-6-trunk-v05]
set of workflows? There {{j8_build}} is a job that actually do the building. Would renaming
it to {{j8_start_tests}} mean that it would become a job requiring manual approval? In that
case we would still need a {{j8_build}} job depending on {{j8_start_tests}}, since approval
jobs can't do the project building. This is more or less what [this approach|https://app.circleci.com/pipelines/github/adelapena/cassandra/892/workflows/894331d0-23cb-4def-9a1e-596142485c63]
does, although the {{start_jx_build}} job could be renamed to {{start_jx_tests}} in the case
of the pre-commit workflows.

> 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message