Working page for Cassandra's CI Systems.
Project Documentation
- https://cassandra.apache.org/doc/latest/development/testing.html
- https://cassandra.apache.org/doc/latest/development/ci.html
ci-cassandra.apache.org (Community)
Purpose
- Predominantly used for post-commit continuous integration.
- Also for pre-commit testing for committers and contributors, particularly for those that don't have access to a CircleCI premium account.
Key Features
- The project's open-sourced continuous integration platform.
- Provides canonical CI status for all supported branches on all of the project's repositories.
- Generates permanent archives for test reports for all supported branches on all the project's repositories.
- Provides Continuous Delivery of the cassandra-website repository to the cassandra.staged.apache.org website.
Usages
Exploring Canonical Test Results
Each Cassandra release branch, eg Cassandra-2.2, Cassandra-3.0, Cassandra-3.11 and Cassandra-4.0; has it's own pipeline build. These are what are visible from the landing page at ci-cassandra.apache.org. These poll every 5 minutes for new commits on these branches. This effectively gives a pipeline build per commit SHA.
Exploring the latest (successful) Test Results for each branch can be done through the following URLs.
- Trunk: https://ci-cassandra.apache.org/job/Cassandra-trunk/lastCompletedBuild/testReport/
- 4.0: https://ci-cassandra.apache.org/job/Cassandra-4.0/lastCompletedBuild/testReport/
- 3.11: https://ci-cassandra.apache.org/job/Cassandra-3.11/lastCompletedBuild/testReport/
- 3.0: https://ci-cassandra.apache.org/job/Cassandra-3.0/lastCompletedBuild/testReport/
- 2.2: https://ci-cassandra.apache.org/job/Cassandra-2.2/lastCompletedBuild/testReport/
These are aggregated test results over all the stages (builds) in the pipeline. The package prefix of the test helps identify which stage they are from, especially when there are matrix builds (unit tests with cdc or compression, or dtests with offheap or novnode). The test report listing will also display the stability (or flakiness) of tests over the past 30 builds.
These test results are only kept for the last 30 builds. Older test results are archived (in plaintext format, see below) in the builds mailing list, and in https://nightlies.apache.org/cassandra/
New vs Existing failures, vs Fixed tests
The Blue Ocean UI provides a better view for listing new vs existing vs fixed tests. From a Test Result page, click on the navigation link.
Past Test Reports
The aggregated test results is also available in plain text format as an artefact attached to each pipeline build. This can be downloaded and saved to make it a permanently available reference.
These test results are otherwise permanently archived in the builds mailing list. Test results for a specific build can be searched via its build number or the commit SHA.
The original XML test reports, and test log files are kept stored in https://nightlies.apache.org/cassandra/
Tarballs, Debian and RedHat packages
For each of the artefact stages inside each pipeline are the built tarballs, Debian and RedHat packages.
These are stored under https://nightlies.apache.org/cassandra/
To download the latest successful build of these, use the following links.
- Trunk (JDK8): https://nightlies.apache.org/cassandra/Cassandra-trunk-artifacts/jdk=JDK%201.8%20(latest),label=cassandra/
- Trunk (JDK11): https://nightlies.apache.org/cassandra/Cassandra-trunk-artifacts/jdk=JDK%2011%20(latest),label=cassandra/
- 3.11: https://nightlies.apache.org/cassandra/Cassandra-3.11-artifacts/jdk=JDK%201.8%20(latest),label=cassandra/
- 3.0: https://nightlies.apache.org/cassandra/Cassandra-3.0-artifacts/jdk=JDK%201.8%20(latest),label=cassandra/
- 2.2: https://nightlies.apache.org/cassandra/Cassandra-2.2-artifacts/jdk=JDK%201.8%20(latest),label=cassandra/
These artefacts come with no guarantees at all, and should only be used for development purposes.
Users should only rely upon our formal releases found here.
DevBranch and pre-commit CI
Limited pre-commit testing for committers and contributors that don't have access to a CircleCI premium account is available through the Cassandra-devbranch jobs. Only committers can trigger these jobs. Contributors need to request a build from a committer.
For pre-commit CI the whole pipeline can be used, or just any of the individual stage jobs. The list of these stage jobs is here: https://ci-cassandra.apache.org/view/patches/
Clickand then enter the arguments to the following parameters, according to your fork and branch details:
Like the release branches, the Blue Ocean UI gives the best overview of the pipeline in progress
Rerun Pipeline from Failed
Pipelines can be restarted, kicking off from any stage, to get past unrelated failures/errors.
Clickand then choose the stage to restart the pipeline from.
Alternatively the pipeline can be manually edited before restarting, to do so click
Continuous Delivery (CD) of cassandra.apache.org Website
The cassandra-website job automatically deploys and updates every trunk build to https://cassandra.staged.apache.org
This includes building the in-tree docs for the head of each of the release branches (those that have docs, eg 3.11 onwards).
More info on this process is available on the cassandra-website's README.md.
Scripts and Configuration
Local Setup
- Instructions here.
CircleCI (Commercial)
Purpose
- Only for pre-commit continuous integration
- Only for those that have access to premium accounts and the large containers (eg employees at Apple, Netflix, DataStax).
Key Features
- Faster feedback that ci-cassandra.apache.org
- Manual trigger of what to build in the workflow
- Automatic building from forked github commit/pr pushes
Usages
Scripts and Configuration
Local Setup
More Information
ML Status Reports: https://lists.apache.org/list.html?dev@cassandra.apache.org:lte=15y:%22Cassandra%20CI%20Status%22
Jira Tickets: