ci: Add continuous integration for github repositories via cirrus-ci.
authorAndres Freund <andres@anarazel.de>
Fri, 31 Dec 2021 02:59:20 +0000 (18:59 -0800)
committerAndres Freund <andres@anarazel.de>
Fri, 31 Dec 2021 03:02:44 +0000 (19:02 -0800)
commit93d97349461347d952e8cebdf62f5aa84b4bd20a
treed2b0e8dc809d186e97e1a5665a90190890e629c7
parent5e65df64d631257ce60016bec0aca43f042b1d33
ci: Add continuous integration for github repositories via cirrus-ci.

Currently FreeBSD, Linux, macOS and Windows (Visual Studio) are tested.

The main goal of this integration is to make it easier to test in-development
patches across multiple platforms. This includes improving the testing done
automatically by cfbot [1] for commitfest entries.  It is *not* the goal to
supersede the buildfarm.

cirrus-ci [2] was chosen because it was already in use for cfbot, allows using
full VMs, has good OS coverage and allows accessing the full test results
without authentication (like a github account).  It might be worth adding
support for further CI providers, particularly ones supporting other git
forges, in the future.

To keep CI times tolerable, most platforms use pre-generated images. Some
platforms use containers, others use full VMs.

For instructions on how to enable the CI integration in a repository and
further details, see src/tools/ci/README

[1] http://cfbot.cputube.org/
[2] https://cirrus-ci.org/

Author: Andres Freund <andres@anarazel.de>
Author: Thomas Munro <tmunro@postgresql.org>
Author: Melanie Plageman <melanieplageman@gmail.com>
Reviewed-By: Melanie Plageman <melanieplageman@gmail.com>
Reviewed-By: Justin Pryzby <pryzby@telsasoft.com>
Reviewed-By: Thomas Munro <tmunro@postgresql.org>
Reviewed-By: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Discussion: https://postgr.es/m/20211001222752.wrz7erzh4cajvgp6@alap3.anarazel.de
.cirrus.yml [new file with mode: 0644]
src/tools/ci/README [new file with mode: 0644]
src/tools/ci/cores_backtrace.sh [new file with mode: 0755]
src/tools/ci/gcp_freebsd_repartition.sh [new file with mode: 0755]
src/tools/ci/pg_ci_base.conf [new file with mode: 0644]
src/tools/ci/windows_build_config.pl [new file with mode: 0644]