Working page for Cassandra's CI Systems.


Project Documentation


 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.
  • Dependent on hardware donated to the community.

Usages

Exploring Canonical Test Results

Each Cassandra release branch 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.

Exploring the latest (successful) Test Results for each branch can be done through the following URLs. 


These are aggregated test results over all the stages (builds) in the pipeline. 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 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 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

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.

(warning) 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/

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


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-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: 

Key Summary T Status Fix Version/s Reporter Assignee reviewers Created Updated
Loading...
Refresh


  • No labels