From c644d5ce982bea51d46cef5e707f1d5ab921c787 Mon Sep 17 00:00:00 2001 From: Jelte Fennema Date: Fri, 2 Dec 2022 14:56:16 +0100 Subject: [PATCH] Test codeclimate --- .circleci/config.yml | 266 ++++++++++++++++++++++++++++++++----------- 1 file changed, 202 insertions(+), 64 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2cebd86ec..2436f2eb3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: parameters: image_suffix: type: string - default: '-v9372c09' + default: '-dev-13377e3' pg13_version: type: string default: '13.9' @@ -163,6 +163,11 @@ jobs: exit 1 fi when: on_fail + - run: + name: 'Create codeclimate coverage' + command: | + lcov --directory . --capture --output-file lcov.info + codeclimate/test-reporter format-coverage -t lcov -o codeclimate/$(openssl rand -hex 30).json lcov.info - run: name: 'Copy coredumps' command: | @@ -191,6 +196,10 @@ jobs: path: /tmp/pg_upgrade_newData_logs - codecov/upload: flags: 'test_<< parameters.old_pg_major >>_<< parameters.new_pg_major >>,upgrade' + - persist_to_workspace: + root: . + paths: + - codeclimate/*.json test-arbitrary-configs: description: Runs tests on arbitrary configs @@ -249,6 +258,11 @@ jobs: fi when: on_fail + - run: + name: 'Create codeclimate coverage' + command: | + lcov --directory . --capture --output-file lcov.info + codeclimate/test-reporter format-coverage -t lcov -o codeclimate/$(openssl rand -hex 30).json lcov.info - run: name: 'Copy logfiles' command: | @@ -272,6 +286,10 @@ jobs: path: src/test/regress/tmp_citus_test/logfiles - codecov/upload: flags: 'test_<< parameters.pg_major >>,upgrade' + - persist_to_workspace: + root: . + paths: + - codeclimate/*.json test-citus-upgrade: description: Runs citus upgrade tests @@ -337,6 +355,11 @@ jobs: exit 1 fi when: on_fail + - run: + name: 'Create codeclimate coverage' + command: | + lcov --directory . --capture --output-file lcov.info + codeclimate/test-reporter format-coverage -t lcov -o codeclimate/$(openssl rand -hex 30).json lcov.info - run: name: 'Copy coredumps' command: | @@ -354,6 +377,10 @@ jobs: path: /tmp/core_dumps - codecov/upload: flags: 'test_<< parameters.pg_major >>,upgrade' + - persist_to_workspace: + root: . + paths: + - codeclimate/*.json test-citus: description: Runs the common tests of citus @@ -396,6 +423,11 @@ jobs: command: | gosu circleci make -C src/test/regress << parameters.make >> no_output_timeout: 2m + - run: + name: 'Create codeclimate coverage' + command: | + lcov --directory . --capture --output-file lcov.info + codeclimate/test-reporter format-coverage -t lcov -o codeclimate/$(openssl rand -hex 30).json lcov.info - run: name: 'Regressions' command: | @@ -437,6 +469,10 @@ jobs: - codecov/upload: flags: 'test_<< parameters.pg_major >>,<< parameters.make >>' when: always + - persist_to_workspace: + root: . + paths: + - codeclimate/*.json tap-test-citus: description: Runs tap tests for citus @@ -483,6 +519,11 @@ jobs: command: | gosu circleci make -C src/test/<< parameters.suite >> << parameters.make >> no_output_timeout: 2m + - run: + name: 'Create codeclimate coverage' + command: | + lcov --directory . --capture --output-file lcov.info + codeclimate/test-reporter format-coverage -t lcov -o codeclimate/$(openssl rand -hex 30).json lcov.info - run: name: 'Copy coredumps' command: | @@ -501,6 +542,10 @@ jobs: - codecov/upload: flags: 'test_<< parameters.pg_major >>,tap_<< parameters.suite >>_<< parameters.make >>' when: always + - persist_to_workspace: + root: . + paths: + - codeclimate/*.json check-merge-to-enterprise: docker: @@ -631,6 +676,33 @@ jobs: - store_artifacts: name: 'Save worker2 log' path: src/test/regress/tmp_check/worker.57638/log + install-codeclimate: + docker: + - image: 'citus/extbuilder:latest' + working_directory: /home/circleci/project + steps: + - run: + name: Download cc-test-reporter + command: | + mkdir -p codeclimate/ + curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./codeclimate/test-reporter + chmod +x ./codeclimate/test-reporter + - persist_to_workspace: + root: . + paths: + - codeclimate/test-reporter + upload-coverage: + docker: + - image: 'citus/extbuilder:latest' + working_directory: /home/circleci/project + steps: + - attach_workspace: + at: . + - run: + name: Upload coverage results to Code Climate + command: | + ./codeclimate/test-reporter sum-coverage codeclimate/*.json -o total.json + ./codeclimate/test-reporter upload-coverage -i total.json workflows: version: 2 @@ -669,394 +741,460 @@ workflows: - check-style - check-sql-snapshots + - install-codeclimate - test-citus: name: 'test-13_check-multi' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-multi - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-multi-1' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-multi-1 - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-mx' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-multi-mx - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-vanilla' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-vanilla - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-isolation' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-isolation - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-operations' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-operations - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-follower-cluster' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-follower-cluster - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-columnar' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-columnar - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-columnar-isolation' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-columnar-isolation - requires: [build-13] + requires: [install-codeclimate, build-13] - tap-test-citus: name: 'test-13_tap-recovery' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' suite: recovery - requires: [build-13] + requires: [install-codeclimate, build-13] - tap-test-citus: name: 'test-13_tap-columnar-freezing' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' suite: columnar_freezing - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-failure' pg_major: 13 image: citus/failtester image_tag: '<< pipeline.parameters.pg13_version >>' make: check-failure - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-enterprise' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-enterprise - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-enterprise-isolation' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-enterprise-isolation - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-enterprise-isolation-logicalrep-1' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-enterprise-isolation-logicalrep-1 - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-enterprise-isolation-logicalrep-2' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-enterprise-isolation-logicalrep-2 - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-enterprise-isolation-logicalrep-3' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-enterprise-isolation-logicalrep-3 - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-enterprise-failure' pg_major: 13 image: citus/failtester image_tag: '<< pipeline.parameters.pg13_version >>' make: check-enterprise-failure - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-13_check-split' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' make: check-split - requires: [build-13] + requires: [install-codeclimate, build-13] - test-citus: name: 'test-14_check-split' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-split - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-enterprise' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-enterprise - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-enterprise-isolation' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-enterprise-isolation - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-enterprise-isolation-logicalrep-1' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-enterprise-isolation-logicalrep-1 - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-enterprise-isolation-logicalrep-2' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-enterprise-isolation-logicalrep-2 - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-enterprise-isolation-logicalrep-3' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-enterprise-isolation-logicalrep-3 - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-enterprise-failure' pg_major: 14 image: citus/failtester image_tag: '<< pipeline.parameters.pg14_version >>' make: check-enterprise-failure - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-multi' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-multi - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-multi-1' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-multi-1 - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-mx' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-multi-mx - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-vanilla' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-vanilla - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-isolation' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-isolation - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-operations' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-operations - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-follower-cluster' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-follower-cluster - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-columnar' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-columnar - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-columnar-isolation' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' make: check-columnar-isolation - requires: [build-14] + requires: [install-codeclimate, build-14] - tap-test-citus: name: 'test-14_tap-recovery' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' suite: recovery - requires: [build-14] + requires: [install-codeclimate, build-14] - tap-test-citus: name: 'test-14_tap-columnar-freezing' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' suite: columnar_freezing - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-14_check-failure' pg_major: 14 image: citus/failtester image_tag: '<< pipeline.parameters.pg14_version >>' make: check-failure - requires: [build-14] + requires: [install-codeclimate, build-14] - test-citus: name: 'test-15_check-split' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-split - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-enterprise' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-enterprise - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-enterprise-isolation' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-enterprise-isolation - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-enterprise-isolation-logicalrep-1' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-enterprise-isolation-logicalrep-1 - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-enterprise-isolation-logicalrep-2' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-enterprise-isolation-logicalrep-2 - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-enterprise-isolation-logicalrep-3' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-enterprise-isolation-logicalrep-3 - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-enterprise-failure' pg_major: 15 image: citus/failtester image_tag: '<< pipeline.parameters.pg15_version >>' make: check-enterprise-failure - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-multi' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-multi - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-multi-1' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-multi-1 - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-mx' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-multi-mx - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-vanilla' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-vanilla - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-isolation' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-isolation - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-operations' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-operations - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-follower-cluster' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-follower-cluster - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-columnar' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-columnar - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-columnar-isolation' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' make: check-columnar-isolation - requires: [build-15] + requires: [install-codeclimate, build-15] - tap-test-citus: name: 'test-15_tap-recovery' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' suite: recovery - requires: [build-15] + requires: [install-codeclimate, build-15] - tap-test-citus: name: 'test-15_tap-columnar-freezing' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' suite: columnar_freezing - requires: [build-15] + requires: [install-codeclimate, build-15] - test-citus: name: 'test-15_check-failure' pg_major: 15 image: citus/failtester image_tag: '<< pipeline.parameters.pg15_version >>' make: check-failure - requires: [build-15] + requires: [install-codeclimate, build-15] - test-arbitrary-configs: name: 'test-13_check-arbitrary-configs' pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] + requires: [install-codeclimate, build-13] - test-arbitrary-configs: name: 'test-14_check-arbitrary-configs' pg_major: 14 image_tag: '<< pipeline.parameters.pg14_version >>' - requires: [build-14] + requires: [install-codeclimate, build-14] - test-arbitrary-configs: name: 'test-15_check-arbitrary-configs' pg_major: 15 image_tag: '<< pipeline.parameters.pg15_version >>' - requires: [build-15] + requires: [install-codeclimate, build-15] - test-pg-upgrade: name: 'test-13-14_check-pg-upgrade' old_pg_major: 13 new_pg_major: 14 image_tag: '<< pipeline.parameters.upgrade_pg_versions >>' - requires: [build-13, build-14] + requires: [install-codeclimate, build-13, build-14] - test-pg-upgrade: name: 'test-14-15_check-pg-upgrade' old_pg_major: 14 new_pg_major: 15 image_tag: '<< pipeline.parameters.upgrade_pg_versions >>' - requires: [build-14, build-15] + requires: [install-codeclimate, build-14, build-15] - test-citus-upgrade: name: test-13_check-citus-upgrade pg_major: 13 image_tag: '<< pipeline.parameters.pg13_version >>' - requires: [build-13] + requires: [install-codeclimate, build-13] + + - upload-coverage: + requires: + - test-13_check-multi + - test-13_check-multi-1 + - test-13_check-mx + - test-13_check-vanilla + - test-13_check-isolation + - test-13_check-operations + - test-13_check-follower-cluster + - test-13_check-columnar + - test-13_check-columnar-isolation + - test-13_tap-recovery + - test-13_tap-columnar-freezing + - test-13_check-failure + - test-13_check-enterprise + - test-13_check-enterprise-isolation + - test-13_check-enterprise-isolation-logicalrep-1 + - test-13_check-enterprise-isolation-logicalrep-2 + - test-13_check-enterprise-isolation-logicalrep-3 + - test-13_check-enterprise-failure + - test-13_check-split + - test-14_check-multi + - test-14_check-multi-1 + - test-14_check-mx + - test-14_check-vanilla + - test-14_check-isolation + - test-14_check-operations + - test-14_check-follower-cluster + - test-14_check-columnar + - test-14_check-columnar-isolation + - test-14_tap-recovery + - test-14_tap-columnar-freezing + - test-14_check-failure + - test-14_check-enterprise + - test-14_check-enterprise-isolation + - test-14_check-enterprise-isolation-logicalrep-1 + - test-14_check-enterprise-isolation-logicalrep-2 + - test-14_check-enterprise-isolation-logicalrep-3 + - test-14_check-enterprise-failure + - test-14_check-split + - test-14_check-arbitrary-configs + - test-15_check-multi + - test-15_check-multi-1 + - test-15_check-mx + - test-15_check-vanilla + - test-15_check-isolation + - test-15_check-operations + - test-15_check-follower-cluster + - test-15_check-columnar + - test-15_check-columnar-isolation + - test-15_tap-recovery + - test-15_tap-columnar-freezing + - test-15_check-failure + - test-15_check-enterprise + - test-15_check-enterprise-isolation + - test-15_check-enterprise-isolation-logicalrep-1 + - test-15_check-enterprise-isolation-logicalrep-2 + - test-15_check-enterprise-isolation-logicalrep-3 + - test-15_check-enterprise-failure + - test-15_check-split + - test-15_check-arbitrary-configs + - test-13-14_check-pg-upgrade + - test-14-15_check-pg-upgrade + - ch_benchmark: requires: [build-13]