schedules:
  commit:
    # per commit job for all branches to run a subset of configs.
    schedule: per_commit
    matrix:
      exclude:
        - nodejs: ['8']
          # Include 2.1, dse-6.0, dse-6.7
          cassandra: ['3.11', '4.0', 'dse-5.1', 'dse-6.8']
        - nodejs: ['10']
          # Include 3.11, dse-6.8
          cassandra: ['2.1', '4.0', 'dse-5.1', 'dse-6.0', 'dse-6.7']
        - nodejs: ['12']
          # Include 4.0, dse-5.1, dse-6.7
          # Examples are run against DSE 6.7
          cassandra: ['2.1', '3.11', 'dse-6.0', 'dse-6.8']
  nightly:
    # nightly job for primary branches to run all configs.
    schedule: nightly
    branches:
      # regex matches primary branch format (2.1, 3.x, 3.0.x, 3.1.x, dse, master, etc).
      include: ["/((\\d+(\\.[\\dx]+)+)|dse|master)/"]
  adhoc:
    # adhoc job for non-primary branches that doesn't have a schedule but may be used to run all configs.
    schedule: adhoc
    enable_pull_requests: true
    branches:
      exclude: ["/((\\d+(\\.[\\dx]+)+)|dse|master)/"]
nodejs:
  - '8'
  - '10'
  - '12'
os:
  - ubuntu/bionic64/nodejs-driver
cassandra:
  - '2.1'
  - '3.11'
  - '4.0'
  - 'dse-5.1'
  - 'dse-6.0'
  - 'dse-6.7'
  - 'dse-6.8'
build:
  - type: envinject
    properties: |
      JAVA_HOME=$CCM_JAVA_HOME
      CCM_PATH=$HOME/ccm
      JUNIT_REPORT_STACK=1
      JUNIT_REPORT_PATH=.
      SIMULACRON_PATH=$HOME/simulacron.jar
      TEST_TRACE=on
  - npm: install
  - npm: install mocha-jenkins-reporter@0
  - npm: install kerberos@1
  - npm: install -g eslint@4
  - npm: run eslint
  - npm: run ci_jenkins
  - script: |
      if [ "$CCM_IS_DSE" == "true" ] && [ "${CCM_VERSION:0:3}" == "6.7" ]; then
        pushd examples
        npm install
        ccm create test_samples --dse -v $CCM_VERSION -n 1:0 -b -s
        node runner.js
        run_rc=$?
        ccm remove
        popd
        exit $run_rc
      fi
    strict: false
  - xunit: "*.xml"
