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

Josh McKenzie commented on CASSANDRA-18731:
-------------------------------------------

{quote}Today, our 5.0+ requirements to the CI pre-commit pipeline are...
{quote}
I think we should revisit this on the dev ML; I don't fully agree w/what you've 
outlined above and this is something we should discuss as a project community, 
not mandate on a comment in a JIRA.

[~e.dimitrova] made the excellent point that as the JDK authors keep tightening 
down what's allowed in terms of unsafe and reflection-based access, we're more 
likely to see failures on the highest supported JDK version rather than the 
lowest for example, meaning the python dtest suites and jvm-dtest-upgrade 
should likely be calibrated to "highest supported and down", vs. "lowest 
supported and up".

Further, I don't agree with (and we've discussed) the need to run test-cdc (or 
it existing at all vs. it just being enabled for all tests), the compression, 
oa, or trie suites as pre-commit smoke suites, etc. I have a strong belief that 
we should expect very infrequent test failures on non-default configurations 
vs. the base; that functionality is supposed to be API compatible and if it 
works on one configuration, it works on all. While there will no doubt be 
flakes, the amount of compute required to run all those pre-commit as a smoke 
suite effectively removes the "smoke" aspect of it and just makes pre-commit a 
vast majority of the cost of a full run.

Same for testing everything in no-vnode and vnode combination; that's so 
terribly wasteful that I just can't agree with doing that for everything 
pre-commit (in any env, circle, new, or ASF-CI). I would very much prefer we 
take the approach you enumerated on the dev ML:
{quote}Can we get these tests temporarily annotated as skipped while all the 
subtickets to 19055 are being worked on ?
{quote}
We have the current example of the TCM merge on CASSANDRA-19055 to immediately 
inspect as to whether this approach is sufficient or not. With anĀ _incredibly 
large_ patch in the form of TCM (88k+ LoC, 900+ files touched), we have less 
than a .002% test failure injection rate using the above restricted smoke 
heuristic, and many of them look to be circle ci env specific and not asf ci. 
(Of note - the artifact building bit definitely needs to be resolved; we should 
consider extending an "artifact build only" target on ASF CI people can 
parameterize with feature branches to make sure they haven't broken the various 
builds?)

And for repeated runs, we discussed the fact that not having support for 
repeated runs in ASF CI meant we also didn't want to put down a hard blocker on 
requiring those runs on other pre-commit environments. Has your position 
changed on that? Regardless, that's just a question of prioritization; it's 
relatively trivial to finish up support for that if we deem it an immediate 
priority.

> Add declarative root CI structure
> ---------------------------------
>
>                 Key: CASSANDRA-18731
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18731
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CI
>            Reporter: Josh McKenzie
>            Assignee: Josh McKenzie
>            Priority: Normal
>             Fix For: 5.x
>
>
> Currently we have a somewhat declarative structure in .circleci, however 
> there's still quite a bit that's baked in (resource limitations, parallelism, 
> which suites qualify for which pipelines (pre-commit vs. post-commit vs. 
> ???), etc). Further, while CASSANDRA-18133 brings the build scripts in-tree, 
> all these parameters (pipelines, env vars, job definitions, resource 
> constraints) are all still scattered throughout the shell scripts and/or 
> reliant on the {{JenkinsFile}} to determine what suites comprise what 
> pipelines.
> This ticket aims to decouple the definition of pipelines and jobs for CI from 
> the implementations themselves. The goal here is to define, establish, and 
> test both the base config and some helper methods to provide _other_ 
> configurations (circle, ASF CI, etc) the tools they need to programmatically 
> inherit base CI config from a purely declarative structure.
> Follow-up tickets will involve rewriting the in-tree build scripts and 
> JenkinsFile generation to rely on this structure, as well as integrating the 
> config parsing unit tests into our CI.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to