version: 2.1

default_env_vars: &default_env_vars
    JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
    ANT_HOME: /usr/share/ant
    LANG: en_US.UTF-8
    KEEP_TEST_DIR: true
    DEFAULT_DIR: /home/cassandra/cassandra-dtest
    PYTHONIOENCODING: utf-8
    PYTHONUNBUFFERED: true
    CASS_DRIVER_NO_EXTENSIONS: true
    CASS_DRIVER_NO_CYTHON: true
    #Skip all syncing to disk to avoid performance issues in flaky CI environments
    CASSANDRA_SKIP_SYNC: true
    DTEST_REPO: git://github.com/apache/cassandra-dtest.git
    DTEST_BRANCH: master
    CCM_MAX_HEAP_SIZE: 1024M
    CCM_HEAP_NEWSIZE: 256M

j8_par_executor: &j8_par_executor
  executor:
    name: java8-executor
    #exec_resource_class: xlarge
  parallelism: 4

j8_small_par_executor: &j8_small_par_executor
  executor:
    name: java8-executor
    #exec_resource_class: xlarge
  parallelism: 1

j8_medium_par_executor: &j8_medium_par_executor
  executor:
    name: java8-executor
    #exec_resource_class: xlarge
  parallelism: 1

j8_seq_executor: &j8_seq_executor
  executor:
    name: java8-executor
    #exec_resource_class: xlarge
  parallelism: 1 # sequential, single container tests: no parallelism benefits

with_dtests_jobs: &with_dtest_jobs
        jobs:
            - build
            # Java 8 unit tests will be run automatically
            - j8_unit_tests:
                requires:
                  - build
            - j8_jvm_dtests:
                requires:
                  - build
            # specialized unit tests (all run on request using Java 8)
            - start_utests_long:
                type: approval
                requires:
                  - build
            - utests_long:
                requires:
                  - start_utests_long
            - start_utests_compression:
                type: approval
                requires:
                  - build
            - utests_compression:
                requires:
                  - start_utests_compression
            - start_utests_stress:
                type: approval
                requires:
                  - build
            - utests_stress:
                requires:
                  - start_utests_stress
            - start_jvm_upgrade_dtest:
                type: approval
            - j8_dtest_jars_build:
                requires:
                  - build
                  - start_jvm_upgrade_dtest
            - j8_jvm_upgrade_dtests:
                requires:
                  - j8_dtest_jars_build
            # Java 8 dtests (on request)
            - start_j8_dtests:
                type: approval
                requires:
                  - build
            - j8_dtests-with-vnodes:
                requires:
                  - start_j8_dtests
            - j8_dtests-no-vnodes:
                requires:
                  - start_j8_dtests
            # Java 8 upgrade tests
            - start_upgrade_tests:
                type: approval
                requires:
                  - build
            - j8_upgradetests-no-vnodes:
                requires:
                  - start_upgrade_tests

with_dtest_jobs_only: &with_dtest_jobs_only
        jobs:
            - build
            - j8_dtests-with-vnodes:
                  requires:
                      - build
            - j8_dtests-no-vnodes:
                  requires:
                      - build

workflows:
    version: 2
    build_and_run_tests: *with_dtest_jobs
    #build_and_run_tests: *with_dtest_jobs_only

executors:
  java8-executor:
    parameters:
      exec_resource_class:
        type: string
        default: medium
    docker:
      - image: spod/cassandra-testing-ubuntu1810-java11-w-dependencies:20190306
    resource_class: << parameters.exec_resource_class >>
    working_directory: ~/
    shell: /bin/bash -eo pipefail -l
    environment:
      <<: *default_env_vars
      JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
      JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64

jobs:
  build:
    executor: java8-executor
    parallelism: 1 # This job doesn't benefit from parallelism
    steps:
      - log_environment
      - clone_cassandra
      - build_cassandra
      - run_eclipse_warnings
      - persist_to_workspace:
            root: /home/cassandra
            paths:
                - cassandra
                - .m2

  j8_dtest_jars_build:
    executor: java8-executor
    parallelism: 1
    steps:
      - attach_workspace:
          at: /home/cassandra
      - build_cassandra_dtest_jars
      - persist_to_workspace:
          root: /home/cassandra
          paths:
            - dtest_jars

  j8_unit_tests:
    <<: *j8_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - create_junit_containers
      - log_environment
      - run_parallel_junit_tests

  j8_jvm_dtests:
    <<: *j8_small_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - create_junit_containers:
          classlistprefix: distributed
          extra_filters: "| grep -v upgrade"
      - log_environment
      - run_parallel_junit_tests:
          classlistprefix: distributed

  j8_jvm_upgrade_dtests:
    <<: *j8_medium_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - create_junit_containers:
          classlistprefix: distributed
          extra_filters: "| grep upgrade"
      - log_environment
      - run_parallel_junit_tests:
          classlistprefix: distributed

  utests_long:
    <<: *j8_seq_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - run_junit_tests:
          target: long-test

  utests_compression:
    <<: *j8_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - create_junit_containers
      - log_environment
      - run_parallel_junit_tests:
          target: testclasslist-compression

  utests_stress:
    <<: *j8_seq_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - run_junit_tests:
          target: stress-test

  j8_dtests-with-vnodes:
    <<: *j8_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - clone_dtest
      - create_venv
      - create_dtest_containers:
          file_tag: j8_with_vnodes
          run_dtests_extra_args: '--use-vnodes --skip-resource-intensive-tests'
      - run_dtests:
          file_tag: j8_with_vnodes
          pytest_extra_args: '--use-vnodes --num-tokens=32 --skip-resource-intensive-tests'

  j8_dtests-no-vnodes:
    <<: *j8_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - clone_dtest
      - create_venv
      - create_dtest_containers:
          file_tag: j8_without_vnodes
          run_dtests_extra_args: '--skip-resource-intensive-tests'
      - run_dtests:
          file_tag: j8_without_vnodes
          pytest_extra_args: '--skip-resource-intensive-tests'

  j8_upgradetests-no-vnodes:
    <<: *j8_par_executor
    steps:
      - attach_workspace:
          at: /home/cassandra
      - clone_dtest
      - create_venv
      - create_dtest_containers:
          file_tag: j8_upgradetests_without_vnodes
          run_dtests_extra_args: '--execute-upgrade-tests'
          extra_env_args: 'RUN_STATIC_UPGRADE_MATRIX=true'
          tests_filter_pattern: '^upgrade_tests'
      - run_dtests:
          file_tag: j8_upgradetests_without_vnodes
          extra_env_args: 'RUN_STATIC_UPGRADE_MATRIX=true'
          pytest_extra_args: '--execute-upgrade-tests'

commands:
  log_environment:
    steps:
    - run:
        name: Log Environment Information
        command: |
          echo '*** id ***'
          id
          echo '*** cat /proc/cpuinfo ***'
          cat /proc/cpuinfo
          echo '*** free -m ***'
          free -m
          echo '*** df -m ***'
          df -m
          echo '*** ifconfig -a ***'
          ifconfig -a
          echo '*** uname -a ***'
          uname -a
          echo '*** mount ***'
          mount
          echo '*** env ***'
          env
          echo '*** java ***'
          which java
          java -version

  clone_cassandra:
    steps:
    - run:
        name: Clone Cassandra Repository (via git)
        command: |
          git clone --single-branch --depth 1 --branch $CIRCLE_BRANCH git://github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME.git ~/cassandra

  clone_dtest:
    steps:
    - run:
        name: Clone Cassandra dtest Repository (via git)
        command: |
          git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest

  build_cassandra:
    steps:
    - run:
        name: Build Cassandra
        command: |
          export PATH=$JAVA_HOME/bin:$PATH
          cd ~/cassandra
          # Loop to prevent failure due to maven-ant-tasks not downloading a jar..
          for x in $(seq 1 3); do
              ${ANT_HOME}/bin/ant clean jar
              RETURN="$?"
              if [ "${RETURN}" -eq "0" ]; then
                  break
              fi
          done
          # Exit, if we didn't build successfully
          if [ "${RETURN}" -ne "0" ]; then
              echo "Build failed with exit code: ${RETURN}"
              exit ${RETURN}
          fi
        no_output_timeout: 15m

  build_cassandra_dtest_jars:
    steps:
    - run:
        name: Build Cassandra DTest jars
        command: |
          export PATH=$JAVA_HOME/bin:$PATH
          cd ~/cassandra
          git remote add apache git://github.com/apache/cassandra.git
          for branch in cassandra-2.2 cassandra-3.0 cassandra-3.11 trunk; do
            # check out the correct cassandra version:
            git remote set-branches --add apache '$branch'
            git fetch --depth 1 apache $branch
            git checkout $branch
            # Loop to prevent failure due to maven-ant-tasks not downloading a jar..
            for x in $(seq 1 3); do
                ${ANT_HOME}/bin/ant clean jar dtest-jar
                RETURN="$?"
                if [ "${RETURN}" -eq "0" ]; then
                    break
                fi
            done
            # Exit, if we didn't build successfully
            if [ "${RETURN}" -ne "0" ]; then
                echo "Build failed with exit code: ${RETURN}"
                exit ${RETURN}
            fi
          done
          # and build the dtest-jar for the branch under test
          git checkout origin/$CIRCLE_BRANCH
          for x in $(seq 1 3); do
              ${ANT_HOME}/bin/ant clean jar dtest-jar
              RETURN="$?"
              if [ "${RETURN}" -eq "0" ]; then
                  break
              fi
          done
          mkdir ~/dtest_jars
          cp build/dtest*.jar ~/dtest_jars
          ls -l ~/dtest_jars
        no_output_timeout: 15m

  run_eclipse_warnings:
    steps:
    - run:
        name: Run eclipse-warnings
        command: |
          export PATH=$JAVA_HOME/bin:$PATH
          cd ~/cassandra
          ant eclipse-warnings

  create_junit_containers:
    parameters:
      classlistprefix:
        type: string
        default: unit
      extra_filters:
        type: string
        default: ""
    steps:
    - run:
        name: Determine <<parameters.classlistprefix>> Tests to Run
        command: |
          # reminder: this code (along with all the steps) is independently executed on every circle container
          # so the goal here is to get the circleci script to return the tests *this* container will run
          # which we do via the `circleci` cli tool.

          rm -fr ~/cassandra-dtest/upgrade_tests
          echo "***java tests***"

          # get all of our unit test filenames
          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/<<parameters.classlistprefix>>/**/*.java" > /tmp/all_java_unit_tests.txt

          # split up the unit tests into groups based on the number of containers we have
          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/<<parameters.classlistprefix>>/;;g" | grep "Test\.java$" <<parameters.extra_filters>> > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt

        no_output_timeout: 15m

  run_junit_tests:
    parameters:
      target:
        type: string
      no_output_timeout:
        type: string
        default: 15m
      classlistprefix:
        type: string
        default: unit
    steps:
    - run:
        name: Run Unit Tests (<<parameters.target>>)
        # Please note that we run `clean` and therefore rebuild the project, as we can't run tests on Java 8 in case
        # based on Java 11 builds.
        command: |
          export PATH=$JAVA_HOME/bin:$PATH
          time mv ~/cassandra /tmp
          cd /tmp/cassandra
          if [ -d ~/dtest_jars ]; then
            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
          fi
          ant <<parameters.target>> -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt  -Dtest.classlistprefix=<<parameters.classlistprefix>>
        no_output_timeout: <<parameters.no_output_timeout>>
    - store_test_results:
        path: /tmp/cassandra/build/test/output/
    - store_artifacts:
        path: /tmp/cassandra/build/test/output
        destination: junitxml
    - store_artifacts:
        path: /tmp/cassandra/build/test/logs
        destination: logs

  run_parallel_junit_tests:
    parameters:
      target:
        type: string
        default: testclasslist
      no_output_timeout:
        type: string
        default: 15m
      classlistprefix:
        type: string
        default: unit
    steps:
    - run:
        name: Run Unit Tests (<<parameters.target>>)
        # Please note that we run `clean` and therefore rebuild the project, as we can't run tests on Java 8 in case
        # based on Java 11 builds.
        command: |
          set -x
          export PATH=$JAVA_HOME/bin:$PATH
          time mv ~/cassandra /tmp
          cd /tmp/cassandra
          if [ -d ~/dtest_jars ]; then
            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
          fi
          test_timeout=$(grep 'name="test.<<parameters.classlistprefix>>.timeout"' build.xml | awk -F'"' '{print $4}' || true)
          if [ -z "$test_timeout" ]; then
            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
          fi
          ant <<parameters.target>> -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt  -Dtest.classlistprefix=<<parameters.classlistprefix>>
        no_output_timeout: <<parameters.no_output_timeout>>
    - store_test_results:
        path: /tmp/cassandra/build/test/output/
    - store_artifacts:
        path: /tmp/cassandra/build/test/output
        destination: junitxml
    - store_artifacts:
        path: /tmp/cassandra/build/test/logs
        destination: logs

  create_venv:
    steps:
    - run:
        name: Configure virtualenv and python Dependencies
        command: |
          # note, this should be super quick as all dependencies should be pre-installed in the docker image
          # if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
          # we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
          # rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
          source ~/env/bin/activate
          export PATH=$JAVA_HOME/bin:$PATH
          pip3 install --upgrade -r ~/cassandra-dtest/requirements.txt
          pip3 freeze

  create_dtest_containers:
    parameters:
      file_tag:
        type: string
      run_dtests_extra_args:
        type: string
        default: ''
      extra_env_args:
        type: string
        default: ''
      tests_filter_pattern:
        type: string
        default: ''
    steps:
    - run:
        name: Determine Tests to Run (<<parameters.file_tag>>)
        no_output_timeout: 5m
        command: |
          # reminder: this code (along with all the steps) is independently executed on every circle container
          # so the goal here is to get the circleci script to return the tests *this* container will run
          # which we do via the `circleci` cli tool.

          cd cassandra-dtest
          source ~/env/bin/activate
          export PATH=$JAVA_HOME/bin:$PATH

          if [ -n '<<parameters.extra_env_args>>' ]; then
            export <<parameters.extra_env_args>>
          fi

          echo "***Collected DTests (<<parameters.file_tag>>)***"
          set -eo pipefail && ./run_dtests.py <<parameters.run_dtests_extra_args>> --dtest-print-tests-only --dtest-print-tests-output=/tmp/all_dtest_tests_<<parameters.file_tag>>_raw --cassandra-dir=../cassandra
          if [ -z '<<parameters.tests_filter_pattern>>' ]; then
            mv /tmp/all_dtest_tests_<<parameters.file_tag>>_raw /tmp/all_dtest_tests_<<parameters.file_tag>>
          else
            grep -e '<<parameters.tests_filter_pattern>>' /tmp/all_dtest_tests_<<parameters.file_tag>>_raw > /tmp/all_dtest_tests_<<parameters.file_tag>> || { echo "Filter did not match any tests! Exiting build."; exit 0; }
          fi
          set -eo pipefail && circleci tests split --split-by=timings --timings-type=classname /tmp/all_dtest_tests_<<parameters.file_tag>> > /tmp/split_dtest_tests_<<parameters.file_tag>>.txt
          cat /tmp/split_dtest_tests_<<parameters.file_tag>>.txt | tr '\n' ' ' > /tmp/split_dtest_tests_<<parameters.file_tag>>_final.txt
          cat /tmp/split_dtest_tests_<<parameters.file_tag>>_final.txt

  run_dtests:
    parameters:
      file_tag:
        type: string
      pytest_extra_args:
        type: string
        default: ''
      extra_env_args:
        type: string
        default: ''
    steps:
      - run:
          name: Run dtests (<<parameters.file_tag>>)
          no_output_timeout: 15m
          command: |
            echo "cat /tmp/split_dtest_tests_<<parameters.file_tag>>_final.txt"
            cat /tmp/split_dtest_tests_<<parameters.file_tag>>_final.txt

            source ~/env/bin/activate
            export PATH=$JAVA_HOME/bin:$PATH
            if [ -n '<<parameters.extra_env_args>>' ]; then
              export <<parameters.extra_env_args>>
            fi

            java -version
            cd ~/cassandra-dtest
            mkdir -p /tmp/dtest

            echo "env: $(env)"
            echo "** done env"
            mkdir -p /tmp/results/dtests
            # we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
            export SPLIT_TESTS=`cat /tmp/split_dtest_tests_<<parameters.file_tag>>_final.txt`
            set -o pipefail && cd ~/cassandra-dtest && pytest <<parameters.pytest_extra_args>> --log-level="INFO" --junit-xml=/tmp/results/dtests/pytest_result_<<parameters.file_tag>>.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
      - store_test_results:
          path: /tmp/results
      - store_artifacts:
          path: /tmp/dtest
          destination: dtest_<<parameters.file_tag>>
      - store_artifacts:
          path: ~/cassandra-dtest/logs
          destination: dtest_<<parameters.file_tag>>_logs
