Table of Contents | ||
---|---|---|
|
Working page for Cassandra's CI Systems.
...
- 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 De Delivery of the cassandra-website repository to the cassandra.staged.apache.org website.
- Dependent on hardware donated to the community.
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 has its 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/
- 33.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 displays display the stability (or flakiness) or the test 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 can be found summarised in the builds mailing list, with complete archives 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
A summary of each pipeline's test failures is summarised
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.
The test results in plaintext format are 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 all test log files, are kept stored in https://nightlies.apache.org/cassandra/
Tarballs, Debian and RedHat packages
Attached to 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 4.1: https://ci-cassandranightlies.apache.org/obcassandra/trunk/Cassandra-trunk-artifacts/lastSuccessfulBuild/artifact/*zip*/archive.zip
- 4.0: https://nightlies.apache.org/cassandra/cassandra-4.0/Cassandra-4.0-artifacts/
- 33.11: https://ci-cassandranightlies.apache.org/obcassandra/cassandra-3.11/Cassandra-3.11-artifacts/lastSuccessfulBuild/artifact/*zip*/archive.zip
- 3.0: https://ci-cassandranightlies.apache.org/obcassandra/cassandra-3.0/Cassandra-3.0-artifacts/lastSuccessfulBuild/artifact/*zip*/archive.zip
- 2.2: https://ci-cassandranightlies.apache.org/obcassandra/cassandra-2.2/Cassandra-2.2-artifacts/lastSuccessfulBuild/artifact/*zip*/archive.zip
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.
These artefacts may be removed after 30 days.
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/
...
Like the release branches, the Blue Ocean UI gives the best overview of the pipeline in progress
Archived results and logs can be found under https://nightlies.apache.org/cassandra/devbranch/
Web Archive of ci-cassandra.apache.org
An archive of each build's summary page is found under https://nightlies.apache.org/cassandra/ci-cassandra.apache.org/
An expired ci-cassandra.apache.org webpage can be found by prepending "https://nightlies.apache.org/cassandra/" to its URL.
For example:
https://ci-cassandra.apache.org/job/Cassandra-trunk/549/ → https://nightlies.apache.org/cassandra/ci-cassandra.apache.org/job/Cassandra-trunk/549/
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
Cassandra Job DSL
All jobs in Jenkins are created from the cassandra_pipeline.groovy file and Cassandra Job DSL builds.
When updating the cassandra_pipeline.groovy file you will need to go to https://ci-cassandra.apache.org/scriptApproval/ and approve the change.
Without approval devbranch jobs will fail with the following message:
org.jenkinsci.plugins.scriptsecurity.scripts.UnapprovedUsageException: script not yet approved for use
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-merge 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
...