From 1905cc80e205f390cdc7acfe79293dce969eed68 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Wed, 22 Aug 2018 16:18:59 -0700 Subject: [PATCH v1 4/4] [robot] Add CI control files This commit adds control files to trigger building and testing. It is not part of the patch set. --- .travis.yml | 34 ++++++++++++++++++++++++++++++++++ README.md | 21 +++++++++++++++++++++ appveyor.yml | 27 +++++++++++++++++++++++++++ buildsetup.pl | 38 ++++++++++++++++++++++++++++++++++++++ dumpregr.pl | 20 ++++++++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 .travis.yml create mode 100644 README.md create mode 100644 appveyor.yml create mode 100644 buildsetup.pl create mode 100644 dumpregr.pl diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000..08ef1fbf9a0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,34 @@ +sudo: required +addons: + apt: + packages: + - gdb + - lcov + - libipc-run-perl + - libperl-dev + - libpython-dev + - tcl-dev + - libldap2-dev + - libicu-dev + - docbook + - docbook-dsssl + - docbook-xsl + - libxml2-utils + - openjade1.3 + - opensp + - xsltproc +language: c +cache: ccache +before_install: + - echo '/tmp/%e-%s-%p.core' | sudo tee /proc/sys/kernel/core_pattern +script: ./configure --enable-debug --enable-cassert --enable-coverage --enable-tap-tests --with-tcl --with-python --with-perl --with-ldap --with-icu && make -j4 all contrib docs && make check-world +#after_success: +# - bash <(curl -s https://codecov.io/bash) +after_failure: + - for f in $(find . -name regression.diffs) ; do echo "========= Contents of $f" ; head -1000 $f ; done + - | + for corefile in $(find /tmp/ -name '*.core' 2>/dev/null) ; do + binary=$(gdb -quiet -core $corefile -batch -ex 'info auxv' | grep AT_EXECFN | perl -pe "s/^.*\"(.*)\"\$/\$1/g") + echo dumping $corefile for $binary + gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" $binary $corefile + done diff --git a/README.md b/README.md new file mode 100644 index 00000000000..81e7b3c27ad --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +Zheap Part I: Undo Log Storage + +This branch is maintained by a robot. It is automatically filtered and +combined from the commit history in the zheap-tmunro branch at +at https://github.com/EnterpriseDB/zheap into a more presentable form. +It's a preview of the lowest level patch-set in the Zheap proposal. +It's work in progress. + +There are five patches in this patch set: + +* [0001-Add-undo-log-manager.patch](../../commit/417481eaf562a36808cc7dbdbffbdef0361eff4f) +* [0002-Provide-access-to-undo-log-data-via-the-buffer-manager.patch](../../commit/88ce7dcbf20f243649aea1bd0ca3f42c7e0cc129) +* [0003-Add-developer-documentation-for-the-undo-log-manager.patch](../../commit/0c741fec6ffa4e69436a7e38dabc85b388477297) +* [0004-Add-tests-for-the-undo-log-manager.patch](../../commit/5d44b81eab636cb7f002704ca685af8a2800024b) +* [0005-Add-user-facing-documentation-for-undo-logs.patch](../../commit/892e5202b1c45a3f2032d4bef671413268738348) + +This branch is automatically tested by: + +* Ubuntu build bot over at Travis CI: [](https://travis-ci.org/macdice/postgres/branches) +* Windows build bot over at AppVeyor: [](https://ci.appveyor.com/project/macdice/postgres/branch/undo-log-storage) + diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 00000000000..af1ce3da32a --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,27 @@ +# appveyor.yml +install: + - cinst winflexbison + - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' + - '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64' + + +before_build: + - rename c:\ProgramData\chocolatey\bin\win_flex.exe flex.exe + - rename c:\ProgramData\chocolatey\bin\win_bison.exe bison.exe + - perl buildsetup.pl + +build: + project: pgsql.sln + +before_test: + - 'perl -p -i.bak -e "s/^test: tablespace/#test: tablespace/" src/test/regress/serial_schedule' + - 'perl -p -i.bak -e "s/^test: tablespace/#test: tablespace/" src/test/regress/parallel_schedule' + +test_script: + - cd src\tools\msvc && vcregress check + +on_failure: + - perl dumpregr.pl + +configuration: + - Release diff --git a/buildsetup.pl b/buildsetup.pl new file mode 100644 index 00000000000..23df2fb1aa4 --- /dev/null +++ b/buildsetup.pl @@ -0,0 +1,38 @@ +# first part of postgres build.pl, just doesn't run msbuild + +use strict; + +BEGIN +{ + + chdir("../../..") if (-d "../msvc" && -d "../../../src"); + +} + +use lib "src/tools/msvc"; + +use Cwd; + +use Mkvcbuild; + +# buildenv.pl is for specifying the build environment settings +# it should contain lines like: +# $ENV{PATH} = "c:/path/to/bison/bin;$ENV{PATH}"; + +if (-e "src/tools/msvc/buildenv.pl") +{ + do "src/tools/msvc/buildenv.pl"; +} +elsif (-e "./buildenv.pl") +{ + do "./buildenv.pl"; +} + +# set up the project +our $config; +do "config_default.pl"; +do "config.pl" if (-f "src/tools/msvc/config.pl"); + +# print "PATH: $_\n" foreach (split(';',$ENV{PATH})); + +Mkvcbuild::mkvcbuild($config); diff --git a/dumpregr.pl b/dumpregr.pl new file mode 100644 index 00000000000..d9039da7844 --- /dev/null +++ b/dumpregr.pl @@ -0,0 +1,20 @@ +use strict; +use warnings FATAL => qw(all); + +use File::Find; + +my $Target = "regression.diffs"; + +find(\&dump, "src"); + +sub dump { + if ($_ eq $Target) { + my $path = $File::Find::name; + print "=== $path ===\n"; + open(my $fh, "<", $_) || die "wtf"; + while (my $line = <$fh>) { + print $line; + if ($. > 1000) { last; } + } + } +} -- 2.18.0.rc2.dirty