Enable CircleCI

The configuration for the build is in the YAML file; the changes to the
regression runner are backward-compatible with Travis and just add the
logic to detect whether our custom (isolation- and vanilla-enabled) pkg
is present.
pull/2616/head
Jason Petersen 2019-02-26 22:17:26 -07:00
parent 25b5fc9d14
commit 5db45bac45
No known key found for this signature in database
GPG Key ID: 9F1D3510D110ABA9
2 changed files with 105 additions and 3 deletions

81
.circleci/config.yml Normal file
View File

@ -0,0 +1,81 @@
version: 2.0
jobs:
build:
docker:
- {image: 'citusdata/extbuilder:latest'}
steps:
- checkout
- {run: {name: 'Configure, Build, and Install', command: build-ext}}
- {persist_to_workspace: {root: ., paths: [.]}}
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'}}
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'}}
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 check-follower-cluster'}}
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: 'citusdata/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'}}
test-11_check-tt-van-mx:
docker:
- {image: 'citusdata/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'}}
test-11_check-iso-work-fol:
docker:
- {image: 'citusdata/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 check-follower-cluster'}}
test-11_check-failure:
docker:
- {image: 'citusdata/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'}}
workflows:
version: 2
build_and_test:
jobs:
- build
- {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-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-failure: {requires: [build]}}

View File

@ -16,6 +16,7 @@ use warnings;
use Fcntl;
use Getopt::Long;
use File::Basename;
use File::Spec::Functions;
use File::Path qw(make_path remove_tree);
use Config;
@ -151,6 +152,11 @@ else
$plainRegress = "$pgxsdir/src/test/regress/pg_regress";
$isolationRegress = "${postgresBuilddir}/src/test/isolation/pg_isolation_regress";
$pgConfig = "$bindir/pg_config";
if (-x "$pgxsdir/src/test/isolation/pg_isolation_regress")
{
$isolationRegress = "$pgxsdir/src/test/isolation/pg_isolation_regress";
}
}
if ($isolationtester && ! -f "$isolationRegress")
@ -171,7 +177,9 @@ MESSAGE
}
my $vanillaRegress = catfile("${postgresBuilddir}", "src", "test", "regress", "pg_regress");
if ($vanillatest && ! -f "$vanillaRegress")
my $vanillaSchedule = catfile(dirname("${pgxsdir}"), "regress", "parallel_schedule");
if ($vanillatest && ! (-f "$vanillaRegress" or -f "$vanillaSchedule"))
{
die <<"MESSAGE";
@ -796,8 +804,21 @@ if ($vanillatest)
$ENV{PGPORT} = $masterPort;
$ENV{PGUSER} = $user;
system("make", ("-C", catfile("$postgresBuilddir", "src", "test", "regress"), "installcheck-parallel")) == 0
or die "Could not run vanilla tests";
if (-f "$vanillaSchedule")
{
rmdir "./testtablespace";
mkdir "./testtablespace";
my $pgregressdir=catfile(dirname("$pgxsdir"), "regress");
system("$plainRegress", ("--inputdir", $pgregressdir),
("--schedule", catfile("$pgregressdir", "parallel_schedule"))) == 0
or die "Could not run vanilla tests";
}
else
{
system("make", ("-C", catfile("$postgresBuilddir", "src", "test", "regress"), "installcheck-parallel")) == 0
or die "Could not run vanilla tests";
}
}
elsif ($isolationtester)
{