Commit Graph

64 Commits

Author SHA1 Message Date
Mick Semb Wever 209ef2b6c4
Jenkins improvements: fail-fast, disk-usage, helm overrides and safety
* Add ephemeral-storage requests and limits to agents, and log peak disk usage
Agents were evicted at the node level due to lack of disk space. Each pod needs minimum 100GiB, and each template now budgets 80Gi of the ~89Gi that a 100GiB node allocates, with docker's own volume carries a 60Gi sizeLimit.  Exceeding either evicts the pod, so logging has been added in each test split before and after the run. All script blocks in Jenkinsfile are now labeled for improved readability in test runs.

* `.build/run-ci` must not silently drop a site's helm values customisations
Long-lived instances like pre-ci.cassandra.apache.org carry values in addition to the jenkins-deployment.yaml, and any `helm upgrade -f jenkins-deployment.yaml` (or `.build/run-ci`) would drop them.  Allow these values to be kept in a separate file, passed in with `--values-override`. Before upgrading helm values, we now compare the deployed values against what is about to be applied and require confirmation for anything only the site holds.  This catches added keys and dropped list items (but it cannot catch every change).
Also keep the jenkins-home pvc claim on uninstall, so --only-tear-down no longer destroys build history. Add jenkins-test.sh and a gha workflow for test validating changes under .jenkins/

 patch by Mick Semb Wever; reviewed by Dmitry Konstantinov for CASSANDRA-21523
2026-07-28 21:58:28 +02:00
Mick Semb Wever 8aad9d6c05
Add a github action that runs .build/docker/check-code.sh
Runs on each supported JDK

 patch by Mick Semb Wever; reviewed by Štefan Miklošovič for CASSANDRA-20931
2025-10-13 12:34:51 +02:00
Mick Semb Wever 1311766ad1
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
  Autogenerate toplevel .snyk file from owasp suppressions
2025-03-30 09:32:10 +02:00
Mick Semb Wever ef3dc6491e
Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
  Autogenerate toplevel .snyk file from owasp suppressions
2025-03-30 09:31:04 +02:00
Mick Semb Wever 9abed87ba4
Autogenerate toplevel .snyk file from owasp suppressions
patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-20319
2025-03-30 09:27:39 +02:00
Jacek Lewandowski 4d61359c21 CASSANDRA-18785: Add support for Sonar analysis
Patch by Jacek Lewandowski; reviewed by Brandon Williams, Maxim Muzafarov, Michael Semb Wever, Stefan Miklosovic for CASSANDRA-18785
2023-11-13 14:48:28 +01:00
Maxim Muzafarov 6708499e4c Remove metrics-reporter-config dependency
patch by Maxim Muzafarov; reviewed by Ekaterina Dimitrova and Brandon Williams for CASSANDRA-18743
2023-09-12 10:14:59 -04:00
Mick Semb Wever 865954fd99
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
  Missing license info and headers
2023-08-31 22:43:33 +02:00
Mick Semb Wever 20125c5053
Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
  Missing license info and headers
2023-08-31 22:41:56 +02:00
Mick Semb Wever aa2494b30b
Merge branch 'cassandra-3.11' into cassandra-4.0
* cassandra-3.11:
  Missing license info and headers
2023-08-31 22:39:56 +02:00
Mick Semb Wever 14e89fc3c7
Merge branch 'cassandra-3.0' into cassandra-3.11
* cassandra-3.0:
  Missing license info and headers
2023-08-31 22:36:33 +02:00
Mick Semb Wever ce49e775f7
Missing license info and headers
patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-18807
2023-08-31 22:30:42 +02:00
Brandon Williams 15c2afe21d Wildcard exclude versioned files in rat
Patch by brandonwilliams; reviewed by smiklosovic for CASSANDRA-18721
2023-08-02 14:45:43 -05:00
Brandon Williams f283ede913 Ninja: exclude 4-1-alpha1.yml from rat 2023-08-02 13:12:34 -05:00
Jacek Lewandowski ad26ffcd57 Run checks in a separate task and fix build warnings
Patch by Jacek Lewandowski; reviewed by Mick Semb Wever and Stefan Miklosovic for CASSANDRA-18618
2023-07-21 05:57:37 +02:00
Mick Semb Wever f5df4b219e
Move build and test scripts in-tree, under .build/
See .build/README.md  .Build and test scripts cover all CI activities in an CI agnostic manner. Scripts are found in non-docker and dockerised variants.

The non-docker scripts are found first under .build/ .These interact directly with ant, providing additional checks and environment setup. It is intended that what can be pushed down into the base ant build layer should be. The
debian and redhat build scripts are hidden under .build/docker because they are generally not usuable outside of their corresponding linux dists, and we don't want to encourage anything to the contrary.  Bring the artifact/deb/rpm
build scripts (and associated docker images) from cassandra-builds repo to the .build directory.  These packaging script for debian and redhat are now separated from the artifacts scripts. An additional build script check-code.sh
has been added that is solely responsible for all linter and code checks (includes owasp dependency checker).  Only JDK11 and JDK17 are supported (as JDK8 is soon to be dropped).  Scripts do not clean (or realclean) so that
scripts can be better pipelined, but `ant jar` was required to be added to circleci and ci-cassandra.a.o cqlsh-tests.  Scripts can define a custom BUILD_DIR (build.dir) which can permit running parrallel builds off the same source
(though not all tests support this, or their support for it has atrophied).  All build and test artifacts, results, and logs are found under build/ (or the BUILD_DIR).  The build local venv and .ccm directories are now also
created under build (or BUILD_DIR).  The test venv, logs and results are wiped each run.  Use a separate mktemp directory each run, under /tmp (respect /tmp responsibility, and python fails when tmpdir is on a docker volume).
Don't set CASSANDRA_HOME when running python dtests (and fail-fast if `ant artifacts` was used to build instead of `ant jar`).

The docker scripts are found lower down under .build/docker/ .These scripts re-used the non-docker scripts inside containers. The docker images are versioned controlled in the same directory as dockerfiles, and tagged by their
md5sums.  When running the docker scripts these docker images will, if not in the local registry, will first be attempted to be pulled from dockerhub and only then fallback to be built locally.  This allows the dockerfiles to be
modified in existing patches and be run in existing CI as-is.  Docker scripts timeout after one hour.  virtualenv-clone is used, re-using the python versioned venvs in the image saves time over creating new ones each run.  The inner-spliting of docker containers has been removed.  It added a lot of complexity, for the most part duplicating the splitting concept, for little performance gain.

Ant target 'generate-unified-test-report' added, used for aggregating test reports and printing a summary.

 patch by Mick Semb Wever; reviewed by Brandon Williams, Josh McKenzie, Maxim Muzafarov, Stefan Miklosovic for CASSANDRA-18133
2023-07-12 12:59:37 +02:00
Stefan Miklosovic a77f941657 Merge branch 'cassandra-4.1' into trunk 2023-01-23 15:22:07 +01:00
Stefan Miklosovic 5c93731eee Merge branch 'cassandra-4.0' into cassandra-4.1 2023-01-23 15:15:59 +01:00
Stefan Miklosovic 669731b033 Merge branch 'cassandra-3.11' into cassandra-4.0 2023-01-23 15:13:44 +01:00
Stefan Miklosovic f52b316016 Merge branch 'cassandra-3.0' into cassandra-3.11 2023-01-23 15:00:03 +01:00
Stefan Miklosovic 357c0d5a89 Expand build.dir property in rat targets
patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-18183
2023-01-23 14:45:39 +01:00
Stefan Miklosovic 5f3e60cfd4 Merge branch 'cassandra-4.1' into trunk 2022-10-21 10:09:44 +02:00
Stefan Miklosovic 9c7d9a36ba Merge branch 'cassandra-4.0' into cassandra-4.1 2022-10-21 10:08:20 +02:00
Stefan Miklosovic 8429229b7d Merge branch 'cassandra-3.11' into cassandra-4.0 2022-10-21 10:06:23 +02:00
Stefan Miklosovic 761d9f9516 Merge branch 'cassandra-3.0' into cassandra-3.11 2022-10-21 10:05:28 +02:00
Stefan Miklosovic 2b31675fbd Fix running Ant rat targets without git
patch by Stefan Miklosovic; reviewed by Michael Semb Wever for CASSANDRA-17974
2022-10-21 09:58:43 +02:00
Claude Warren, Jr 85f113bce3 Add pull request template and modify README to include Jira and mailing list link
patch by claudenw; reviewed by dritfx, dcapwell, josh-mckenzie, michaelsembwever and smiklosovic for CASSANDRA-17837
2022-09-21 09:10:28 +02:00
Ekaterina Dimitrova fe28f482db Fix sstable_preemptive_open_interval_in_mb disabled value - backward compatibility
patch by Ekaterina Dimitrova; reviewed by Andres de la Pena and Jon Meredith for CASSANDRA-17737
2022-07-29 13:26:31 -04:00
Branimir Lambov e4e19e33fa Add memtable API (CEP-11)
patch by Branimir Lambov; reviewed by Andrés de la Peña and Caleb Rackliffe for CASSANDRA-17034
2022-04-29 14:56:20 +03:00
David Capwell 3409e5d9b3 Enhance SnakeYAML properties to be reusable outside of YAML parsing, support camel case conversion to snake case, and add support to ignore properties
patch by David Capwell; reviewed by Caleb Rackliffe, Stefan Miklosovic for CASSANDRA-17166
2022-04-22 20:17:45 -07:00
Jacek Lewandowski 0040fea379 Implement sstable generation identifier as uuid
Patch by Jacek Lewandowski; reviewed by Andrés de la Peña, Benjamin Lerer and Dan Jatnieks for CASSANDRA-17048
2022-03-23 11:50:33 +00:00
Mick Semb Wever 212a76233f
ninja-fix update .build/build-rat.xml 2022-03-21 08:33:10 +01:00
Benedict Elliott Smith d2923275e3 CEP-14: Paxos Improvements
This work encompasses a range of improvements to Paxos, summarised as:

 - The introduction of Paxos Repair for ensuring consistency during range movements
 - The reduction of network round-trips by a factor of 2x for reads and writes

patch by Benedict Elliott Smith and Blake Eggleston; reviewed by Alex Petrov, Aleksey Yeschenko and Sam Tunnicliffe for CASSANDRA-17164
2022-03-10 16:30:12 +00:00
Dmitry Potepalov a8bbd22d37 Fix ignored streaming encryption settings in sstableloader
Patch by Dmitry Potepalov; reviewed by bereng and brandonwilliams for
CASSANDRA-17367

Encryption settings were silently lost in BulkLoadConnectionFactory.
Forced the bulk loader test to do some actual streaming besides just
handshaking on the native port, the test does not pass without the
change in BulkLoadConnectionFactory.
2022-03-02 08:00:40 -06:00
Dmitry Potepalov 0e249fd15e Fix ignored streaming encryption settings in sstableloader
Patch by Dmitry Potepalov; reviewed by bereng and brandonwilliams for
CASSANDRA-17367

Encryption settings were silently lost in BulkLoadConnectionFactory.
Forced the bulk loader test to do some actual streaming besides just
handshaking on the native port, the test does not pass without the
change in BulkLoadConnectionFactory.
2022-03-02 07:45:13 -06:00
Alex Petrov 81922c5a7b Intoduce Harry to the tree
Patch by Alex Petrov; reviewed by Caleb Rackliffe and Abe Ratnofsky for CASSANDRA-16262.
2022-02-16 09:00:36 +01:00
Ekaterina Dimitrova 5bb4bab12f DataRate parameters transition to the new framework
Fix the DB descriptorRefTest which failed on the previous commit
patch by Ekaterina Dimitrova; reviewed by Caleb Rackliffe, David Capwell, Michael Semb Wever and Benjamin Lerer for CASSANDRA-15234
2022-02-05 22:27:27 -05:00
Mick Semb Wever 54aee87c56
Merge branch 'cassandra-4.0' into trunk 2022-01-05 23:11:36 +01:00
Mick Semb Wever 0aad2e9e86
Merge branch 'cassandra-3.11' into cassandra-4.0 2022-01-05 23:00:27 +01:00
Lorina Poland 05b0eaecad
Migrate documentation to AsciiDoc
This commit sets up a new documentation structure and format:

* The directory struture changes from a Sphinx project to an Antora module layout.
* The formatting of the content changes from reStructuredText to AsciiDoc.

The documentation must now be built and published with Antora. Initially only from the cassandra-website repository.

This change was done to make maintaining versioned website documentation easier. As Antora is designed to generate versioned documentation.

The old directory structure was:

<ROOT>
  - doc/
    - cql3/
      - CQL.css
      - CQL.textile
    - source/
      - _static/
      - _templates/
      - _theme/
      - _util/
      - <other directory sections>/
      - conf.py
      - index.rst
      - <other *.rst pages>
    - make.bat
    - Makefile
    - README.md
    - SASI.md
    - <*.spec files>
    - <generation scripts>

The new directory structure organises the documentation into modules:

<ROOT>
  - doc/
    - cql3
    - modules/
      - cassandra/
        - assets/
        - examples/
        - pages/
        - partials/
        - nav.adoc
      - ROOT/
        - pages/
        - nav.adoc
    - scripts/
    - antora.yaml
    - README.md
    - SASI.md

 patch by Lorina Poland, Anthony Grasso; reviewed by Anthony Grasso, Mick Semb Wever for CASSANDRA-16763

Co-authored-by: Anthony Grasso <anthony@thelastpickle.com>
2022-01-05 22:03:02 +01:00
Ekaterina Dimitrova 670bcff596 Merge branch 'cassandra-4.0' into trunk 2021-11-16 15:08:54 -05:00
Ekaterina Dimitrova 44ace88585 internode_send_buff_size_in_bytes and internode_recv_buff_size_in_bytes have new names. Backward compatibility with the old names added
patch by Ekaterina Dimitrova; reviewed by David Capwell for CASSANDRA-17141
2021-11-16 14:34:04 -05:00
David Capwell 4b3f07fc74 allow blocking IPs from updating metrics about traffic
patch by David Capwell; reviewed by Benjamin Lerer, Caleb Rackliffe, Jon Meredith for CASSANDRA-16859
2021-08-20 17:24:16 -07:00
Mick Semb Wever 2fdf1d2762 Migrate dependency handling from maven-ant-tasks to resolver-ant-tasks
- This removes lib/ from version control.
- The generated pom files are now the source of truth to the project's depdendencies, and the lib/ folder re-created during the build from compile scope dependencies excluding provided and system scopes. Project dependencies are first downloaded to the maven local repository at `~/.m2/repository`.
- Maven is now required to be installed to build, that is the `mvn` command needs to be found in the path.
- The new resolver-ant-tasks targets have been encapsulated into the `build/build-resolver.xml` ant file.
- Most classpaths in build.xml are replaced with resolver:resolve definitions.
- The build-deps-pom generated pom file is now only used for declaring test dependencies.

 patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-16557
2021-07-25 11:37:32 -05:00
Mick Semb Wever 3259d6de37 Migrate dependency handling from maven-ant-tasks to resolver-ant-tasks
- This removes lib/ from version control.
- The generated pom files are now the source of truth to the project's depdendencies, and the lib/ folder re-created during the build from compile scope dependencies excluding provided and system scopes. Project dependencies are first downloaded to the maven local repository at `~/.m2/repository`.
- Maven is now required to be installed to build, that is the `mvn` command needs to be found in the path.
- The new resolver-ant-tasks targets have been encapsulated into the `build/build-resolver.xml` ant file.
- Most classpaths in build.xml are replaced with resolver:resolve definitions.
- The build-deps-pom generated pom file is now only used for declaring test dependencies.

 patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-16557
2021-07-25 11:35:45 -05:00
Sam Tunnicliffe 36a0f11221 Merge branch 'cassandra-3.11' into trunk 2021-04-27 12:01:30 +01:00
Sam Tunnicliffe 9449cd3d6e Merge branch 'cassandra-3.0' into cassandra-3.11 2021-04-27 11:57:00 +01:00
Sam Tunnicliffe 4763d5625a Merge branch 'cassandra-2.2' into cassandra-3.0 2021-04-27 11:56:07 +01:00
Sam Tunnicliffe 26163bb12a Follow up fixes to CASSANDRA-16633
* Don't run rat check if git fails or not available
* Check for presence of rat.txt before running eclipse-warnings task
  (to ensure that the report is always generated by CI runs)

Patch by Sam Tunnicliffe; reviewed by Mick Semb Wever for CASSANDRA-16633
2021-04-27 11:12:07 +01:00
Sam Tunnicliffe 9cda055faa Merge branch 'cassandra-3.11' into trunk 2021-04-27 09:31:45 +01:00