version: 2.1 orbs: codecov: codecov/codecov@1.1.1 azure-cli: circleci/azure-cli@1.0.0 jobs: build-11: docker: - image: 'citus/extbuilder:11.9' steps: - checkout - run: name: 'Configure, Build, and Install' command: build-ext - persist_to_workspace: root: . paths: - build-11/* - install-11.tar build-12: docker: - image: 'citus/extbuilder:12.4' steps: - checkout - run: name: 'Configure, Build, and Install' command: build-ext - persist_to_workspace: root: . paths: - build-12/* - install-12.tar build-13: docker: - image: 'citus/extbuilder:13.0' steps: - checkout - run: name: 'Configure, Build, and Install' command: build-ext - persist_to_workspace: root: . paths: - build-13/* - install-13.tar check-style: docker: - image: 'citus/stylechecker:latest' steps: - checkout - run: name: 'Check Style' command: citus_indent --check - run: name: 'Fix whitespace' command: ci/editorconfig.sh - run: name: 'Check if whitespace fixing changed anything, install editorconfig if it did' command: git diff --exit-code - run: name: 'Remove useless declarations' command: ci/remove_useless_declarations.sh - run: name: 'Check if changed' command: git diff --cached --exit-code - run: name: 'Normalize test output' command: ci/normalize_expected.sh - run: name: 'Check if changed' command: git diff --exit-code - run: name: 'Check for C-style comments in migration files' command: ci/disallow_c_comments_in_migrations.sh - run: name: 'Check if changed' command: git diff --exit-code - run: name: 'Check for lengths of changelog entries' command: ci/disallow_long_changelog_entries.sh - run: name: 'Check for banned C API usage' command: ci/banned.h.sh - run: name: 'Check for tests missing in schedules' command: ci/check_all_tests_are_run.sh - run: name: 'Check if all CI scripts are actually run' command: ci/check_all_ci_scripts_are_run.sh check-sql-snapshots: docker: - image: 'citus/extbuilder:latest' steps: - checkout - run: name: 'Check Snapshots' command: ci/check_sql_snapshots.sh test-11_check-multi: docker: - image: 'citus/exttester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-multi)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-multi' no_output_timeout: 2m - codecov/upload: flags: 'test_11,multi' test-11_check-vanilla: docker: - image: 'citus/exttester:11-9_dev' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-vanilla)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-vanilla' no_output_timeout: 2m - codecov/upload: flags: 'test_11,vanilla' test-11_check-mx: docker: - image: 'citus/exttester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-mx)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-multi-mx' no_output_timeout: 2m - codecov/upload: flags: 'test_11,mx' test-11_check-worker: docker: - image: 'citus/exttester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-worker)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-worker' no_output_timeout: 2m - codecov/upload: flags: 'test_11,worker' test-11_check-isolation: docker: - image: 'citus/exttester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-isolation)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-isolation' no_output_timeout: 2m - codecov/upload: flags: 'test_11,isolation' test-11_check-follower-cluster: docker: - image: 'citus/exttester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Enable core dumps' command: 'ulimit -c unlimited' - run: name: 'Install and Test (follower-cluster)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-follower-cluster' no_output_timeout: 2m - run: command: | mkdir -p /tmp/core_dumps cp core.* /tmp/core_dumps when: on_fail - codecov/upload: flags: 'test_11,follower-cluster' - store_artifacts: path: '/tmp/core_dumps' test-11_check-failure: docker: - image: 'citus/failtester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-failure)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-failure' no_output_timeout: 2m test-11-12_check-pg-upgrade: docker: - image: 'citus/pgupgradetester:latest' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and test postgres upgrade' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext --target check-pg-upgrade --old-pg-version 11 --new-pg-version 12' no_output_timeout: 2m test-12-13_check-pg-upgrade: docker: - image: 'citus/pgupgradetester:latest' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and test postgres upgrade' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext --target check-pg-upgrade --old-pg-version 12 --new-pg-version 13' no_output_timeout: 2m test-12_check-multi: docker: - image: 'citus/exttester:12.4' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-multi)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-multi' no_output_timeout: 2m - codecov/upload: flags: 'test_12,multi' test-12_check-vanilla: docker: - image: 'citus/exttester:12.4_dev' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-vanilla)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-vanilla' no_output_timeout: 2m - codecov/upload: flags: 'test_12,vanilla' test-12_check-mx: docker: - image: 'citus/exttester:12.4' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-mx)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-multi-mx' no_output_timeout: 2m - codecov/upload: flags: 'test_12,mx' test-12_check-isolation: docker: - image: 'citus/exttester:12.4' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-isolation)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-isolation' no_output_timeout: 2m - codecov/upload: flags: 'test_12,isolation' test-12_check-worker: docker: - image: 'citus/exttester:12.4' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-worker)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-worker' no_output_timeout: 2m - codecov/upload: flags: 'test_12,worker' test-12_check-follower-cluster: docker: - image: 'citus/exttester:12.4' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Enable core dumps' command: 'ulimit -c unlimited' - run: name: 'Install and Test (follower-cluster)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-follower-cluster' no_output_timeout: 2m - run: command: | mkdir -p /tmp/core_dumps cp core.* /tmp/core_dumps when: on_fail - codecov/upload: flags: 'test_12,follower-cluster' - store_artifacts: path: '/tmp/core_dumps' test-12_check-failure: docker: - image: 'citus/failtester:12.4' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-failure)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-failure' no_output_timeout: 2m test-11_check-citus-upgrade: docker: - image: 'citus/citusupgradetester:11.9' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and test citus upgrade' command: | chown -R circleci:circleci /home/circleci install-and-test-ext --target check-citus-upgrade --citus-pre-tar /install-pg11-citusv8.0.0.tar install-and-test-ext --target check-citus-upgrade --citus-pre-tar /install-pg11-citusv8.1.0.tar install-and-test-ext --target check-citus-upgrade --citus-pre-tar /install-pg11-citusv8.2.0.tar install-and-test-ext --target check-citus-upgrade --citus-pre-tar /install-pg11-citusv8.3.0.tar install-and-test-ext --target check-citus-upgrade-mixed --citus-pre-tar /install-pg11-citusv8.0.0.tar install-and-test-ext --target check-citus-upgrade-mixed --citus-pre-tar /install-pg11-citusv8.1.0.tar install-and-test-ext --target check-citus-upgrade-mixed --citus-pre-tar /install-pg11-citusv8.2.0.tar install-and-test-ext --target check-citus-upgrade-mixed --citus-pre-tar /install-pg11-citusv8.3.0.tar no_output_timeout: 2m test-13_check-multi: docker: - image: 'citus/exttester:13.0' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-multi)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-multi' no_output_timeout: 2m - codecov/upload: flags: 'test_13,multi' test-13_check-mx: docker: - image: 'citus/exttester:13.0' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-mx)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-multi-mx' no_output_timeout: 2m - codecov/upload: flags: 'test_13,mx' test-13_check-vanilla: docker: - image: 'citus/exttester:13.0_dev' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-vanilla)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-vanilla' no_output_timeout: 2m - codecov/upload: flags: 'test_13,vanilla' test-13_check-worker: docker: - image: 'citus/exttester:13.0' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-worker)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-worker' no_output_timeout: 2m - codecov/upload: flags: 'test_13,worker' test-13_check-isolation: docker: - image: 'citus/exttester:13.0' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-isolation)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-isolation' no_output_timeout: 2m - codecov/upload: flags: 'test_13,isolation' test-13_check-follower-cluster: docker: - image: 'citus/exttester:13.0' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Enable core dumps' command: 'ulimit -c unlimited' - run: name: 'Install and Test (follower-cluster)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-follower-cluster' no_output_timeout: 2m - run: command: | mkdir -p /tmp/core_dumps cp core.* /tmp/core_dumps when: on_fail - codecov/upload: flags: 'test_13,follower-cluster' - store_artifacts: path: '/tmp/core_dumps' test-13_check-failure: docker: - image: 'citus/failtester:13.0' working_directory: /home/circleci/project steps: - checkout - attach_workspace: at: . - run: name: 'Install and Test (check-failure)' command: 'chown -R circleci:circleci /home/circleci && install-and-test-ext check-failure' no_output_timeout: 2m check-merge-to-enterprise: docker: - image: citus/extbuilder:13.0 working_directory: /home/circleci/project steps: - checkout - run: command: | ci/check_enterprise_merge.sh ch_benchmark: docker: - image: buildpack-deps:stretch working_directory: /home/circleci/project steps: - checkout - azure-cli/install - azure-cli/login-with-service-principal - run: command: | cd ./src/test/hammerdb sh run_hammerdb.sh citusbot_ch_benchmark_rg name: install dependencies and run ch_benchmark tests no_output_timeout: 20m tpcc_benchmark: docker: - image: buildpack-deps:stretch working_directory: /home/circleci/project steps: - checkout - azure-cli/install - azure-cli/login-with-service-principal - run: command: | cd ./src/test/hammerdb sh run_hammerdb.sh citusbot_tpcc_benchmark_rg name: install dependencies and run ch_benchmark tests no_output_timeout: 20m workflows: version: 2 build_and_test: jobs: - check-merge-to-enterprise: filters: branches: ignore: - /release-[0-9]+\.[0-9]+.*/ # match with releaseX.Y.* - build-11 - build-12 - build-13 - check-style - check-sql-snapshots # - test-11_check-multi: # requires: [build-11] - test-11_check-vanilla: requires: [build-11] # - test-11_check-isolation: # requires: [build-11] # - test-11_check-mx: # requires: [build-11] # - test-11_check-worker: # requires: [build-11] # - test-11_check-follower-cluster: # requires: [build-11] # - test-11_check-failure: # requires: [build-11] # - test-12_check-multi: # requires: [build-12] - test-12_check-vanilla: requires: [build-12] # - test-12_check-isolation: # requires: [build-12] # - test-12_check-mx: # requires: [build-12] # - test-12_check-worker: # requires: [build-12] # - test-12_check-follower-cluster: # requires: [build-12] # - test-12_check-failure: # requires: [build-12] # - test-13_check-multi: # requires: [build-13] - test-13_check-vanilla: requires: [build-13] # - test-13_check-isolation: # requires: [build-13] # - test-13_check-mx: # requires: [build-13] # - test-13_check-worker: # requires: [build-13] # - test-13_check-follower-cluster: # requires: [build-13] # - test-13_check-failure: # requires: [build-13] # - test-11-12_check-pg-upgrade: # requires: # - build-11 # - build-12 # - test-12-13_check-pg-upgrade: # requires: # - build-12 # - build-13 - test-11_check-citus-upgrade: requires: [build-11] - ch_benchmark: requires: [build-13] filters: branches: only: - /ch_benchmark\/.*/ # match with ch_benchmark/ prefix - tpcc_benchmark: requires: [build-13] filters: branches: only: - /tpcc_benchmark\/.*/ # match with tpcc_benchmark/ prefix