citus/.circleci/config.yml

272 lines
7.8 KiB
YAML

version: 2.1
orbs:
codecov: codecov/codecov@1.0.4
jobs:
build:
docker:
- image: 'citus/extbuilder:latest'
steps:
- checkout
- run:
name: 'Configure, Build, and Install'
command: build-ext
- persist_to_workspace:
root: .
paths: [.]
check-style:
docker:
- image: 'citusdata/stylechecker:latest'
steps:
- checkout
- run:
name: 'Check Style'
command: citus_indent --check
check-sql-snapshots:
docker:
- image: 'citusdata/extbuilder:werror'
steps:
- checkout
- run:
name: 'Check Snapshots'
command: "./configure && make check-sql-snapshots -C src/backend/distributed"
test-10_check-multi:
docker:
- image: 'citusdata/exttester-10:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-multi)'
command: 'install-and-test-ext check-multi'
- codecov/upload:
flags: 'test_10,multi'
test-10_check-tt-van-mx:
docker:
- image: 'citusdata/exttester-10:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-tt-van-mx)'
command: 'install-and-test-ext check-multi-task-tracker-extra check-vanilla check-multi-mx'
- codecov/upload:
flags: 'test_10,tracker,vanilla,mx'
test-10_check-iso-work-fol:
docker:
- image: 'citusdata/exttester-10:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-iso-work-fol)'
command: 'install-and-test-ext check-isolation check-worker'
- codecov/upload:
flags: 'test_10,isolation,worker'
test-10_check-fol:
docker:
- image: 'citusdata/exttester-10:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Enable core dumps'
command: 'ulimit -c unlimited'
- run:
name: 'Install and Test (fol)'
command: 'install-and-test-ext check-follower-cluster'
- run:
command: |
mkdir -p /tmp/core_dumps
cp core.* /tmp/core_dumps
when: on_fail
- codecov/upload:
flags: 'follower'
- store_artifacts:
path: '/tmp/core_dumps'
test-10_check-failure:
docker:
- image: 'citusdata/failtester-10:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-failure)'
command: 'install-and-test-ext check-failure'
test-11_check-multi:
docker:
- image: 'citus/exttester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-multi)'
command: 'install-and-test-ext check-multi'
- codecov/upload:
flags: 'test_11,multi'
test-11_check-non-adaptive-multi:
docker:
- image: 'citus/exttester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-non-adaptive-executors)'
command: 'install-and-test-ext check-multi-non-adaptive'
- codecov/upload:
flags: 'test_11,multi'
test-11_check-non-adaptive-failure:
docker:
- image: 'citus/failtester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-non-adaptive-executors)'
command: 'install-and-test-ext check-failure-non-adaptive'
- codecov/upload:
flags: 'test_11,failure'
test-11_check-non-adaptive-isolation:
docker:
- image: 'citus/exttester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-non-adaptive-executors)'
command: 'install-and-test-ext check-isolation-non-adaptive'
- codecov/upload:
flags: 'test_11,isolation'
test-11_check-tt-van-mx:
docker:
- image: 'citus/exttester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-tt-van-mx)'
command: 'install-and-test-ext check-multi-task-tracker-extra check-vanilla check-multi-mx'
- codecov/upload:
flags: 'test_11,tracker,vanilla,mx'
test-11_check-iso-work-fol:
docker:
- image: 'citus/exttester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-iso-work-fol)'
command: 'install-and-test-ext check-isolation check-worker'
- codecov/upload:
flags: 'test_11,isolation,worker'
test-11_check-fol:
docker:
- image: 'citus/exttester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Enable core dumps'
command: 'ulimit -c unlimited'
- run:
name: 'Install and Test (fol)'
command: 'install-and-test-ext check-follower-cluster'
- run:
command: |
mkdir -p /tmp/core_dumps
cp core.* /tmp/core_dumps
when: on_fail
- codecov/upload:
flags: 'follower'
- store_artifacts:
path: '/tmp/core_dumps'
test-11_check-failure:
docker:
- image: 'citus/failtester-11:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and Test (check-failure)'
command: 'install-and-test-ext check-failure'
test-10-11_check-pg-upgrade:
docker:
- image: 'citus/pgupgradetester:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and test postgres upgrade'
command: 'install-and-test-ext --target check-upgrade --old-pg-version 10 --new-pg-version 11'
test-11-12_check-pg-upgrade:
docker:
- image: 'citus/pgupgradetester:latest'
working_directory: /home/circleci/project
steps:
- attach_workspace:
at: .
- run:
name: 'Install and test postgres upgrade'
command: 'install-and-test-ext --target check-upgrade --old-pg-version 11 --new-pg-version 12'
workflows:
version: 2
build_and_test:
jobs:
- build
- check-style
- check-sql-snapshots
- test-10_check-multi:
requires: [build]
- test-10_check-tt-van-mx:
requires: [build]
- test-10_check-iso-work-fol:
requires: [build]
- test-10_check-fol:
requires: [build]
- test-10_check-failure:
requires: [build]
- test-11_check-multi:
requires: [build]
- test-11_check-tt-van-mx:
requires: [build]
- test-11_check-iso-work-fol:
requires: [build]
- test-11_check-fol:
requires: [build]
- test-11_check-failure:
requires: [build]
- test-11_check-non-adaptive-multi:
requires: [build]
- test-11_check-non-adaptive-failure:
requires: [build]
- test-11_check-non-adaptive-isolation:
requires: [build]
- test-10-11_check-pg-upgrade:
requires: [build]
- test-11-12_check-pg-upgrade:
requires: [build]