[libvirt-php 0/6] introduce GitLab CI and merge requests

This series introduces use of GitLab CI and merge requests. In doing so several current build problems are fixes. Daniel P. Berrangé (6): m4: ignore --php-binary if it doesn't exist src: don't declare global variables in header files tests: mark skipped tests with exit status 77 tests: skip test if not running on host with running libvirtd gitlab: add CI jobs for validating build across platforms gitlab: add CONTRIBUTING.rst file to indicate use of merge requests .gitlab-ci.yml | 146 +++++++++++++++++++++++++++ .gitpublish | 4 - CONTRIBUTING.rst | 28 +++++ ci/README.rst | 12 +++ ci/libvirt-centos-7.Dockerfile | 92 +++++++++++++++++ ci/libvirt-debian-10.Dockerfile | 64 ++++++++++++ ci/libvirt-debian-9.Dockerfile | 67 ++++++++++++ ci/libvirt-debian-sid.Dockerfile | 64 ++++++++++++ ci/libvirt-fedora-31.Dockerfile | 60 +++++++++++ ci/libvirt-fedora-32.Dockerfile | 60 +++++++++++ ci/libvirt-fedora-rawhide.Dockerfile | 61 +++++++++++ ci/libvirt-opensuse-151.Dockerfile | 62 ++++++++++++ ci/libvirt-ubuntu-1804.Dockerfile | 67 ++++++++++++ ci/libvirt-ubuntu-2004.Dockerfile | 64 ++++++++++++ ci/refresh | 22 ++++ m4/virt-php-extension.m4 | 2 +- src/libvirt-connection.c | 2 + src/libvirt-connection.h | 2 +- src/libvirt-domain.c | 2 + src/libvirt-domain.h | 2 +- src/libvirt-network.c | 2 + src/libvirt-network.h | 2 +- src/libvirt-nodedev.c | 2 + src/libvirt-nodedev.h | 2 +- src/libvirt-nwfilter.c | 2 + src/libvirt-nwfilter.h | 2 +- src/libvirt-php.c | 2 + src/libvirt-php.h | 2 +- src/libvirt-snapshot.c | 2 + src/libvirt-snapshot.h | 2 +- src/libvirt-storage.c | 3 + src/libvirt-storage.h | 4 +- src/libvirt-stream.c | 2 + src/libvirt-stream.h | 2 +- tests/functions.phpt.in | 2 +- tests/runtests.sh | 2 +- tests/test-get-models.phpt | 4 +- 37 files changed, 903 insertions(+), 19 deletions(-) delete mode 100644 .gitpublish create mode 100644 CONTRIBUTING.rst create mode 100644 ci/README.rst create mode 100644 ci/libvirt-centos-7.Dockerfile create mode 100644 ci/libvirt-debian-10.Dockerfile create mode 100644 ci/libvirt-debian-9.Dockerfile create mode 100644 ci/libvirt-debian-sid.Dockerfile create mode 100644 ci/libvirt-fedora-31.Dockerfile create mode 100644 ci/libvirt-fedora-32.Dockerfile create mode 100644 ci/libvirt-fedora-rawhide.Dockerfile create mode 100644 ci/libvirt-opensuse-151.Dockerfile create mode 100644 ci/libvirt-ubuntu-1804.Dockerfile create mode 100644 ci/libvirt-ubuntu-2004.Dockerfile create mode 100755 ci/refresh -- 2.26.2

On OpenSUSE 151, "php-config --php-binary" reports a name of "/usr/bin/php-cgi", but this binary doesn't actually exist. We need to fallback to the plain "/usr/bin/php" command. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- m4/virt-php-extension.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/virt-php-extension.m4 b/m4/virt-php-extension.m4 index 5aa3cb7..2a97e74 100644 --- a/m4/virt-php-extension.m4 +++ b/m4/virt-php-extension.m4 @@ -26,7 +26,7 @@ AC_DEFUN([LIBVIRT_CHECK_PHP_EXTENSION],[ AC_MSG_CHECKING([for php module $1]) phpbinary="$($PHPCONFIG --php-binary)" - if test "x$phpbinary" = "x"; then + if test "x$phpbinary" = "x" || test ! -x "$phpbinary" ; then phpbinary="$($PHPCONFIG --prefix)/bin/php" fi -- 2.26.2

In Fedora 32 and later the linker will no longer merge duplicate global variables. Thus headers need fixing to properly use "extern" and put the actual declaration in the source files. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/libvirt-connection.c | 2 ++ src/libvirt-connection.h | 2 +- src/libvirt-domain.c | 2 ++ src/libvirt-domain.h | 2 +- src/libvirt-network.c | 2 ++ src/libvirt-network.h | 2 +- src/libvirt-nodedev.c | 2 ++ src/libvirt-nodedev.h | 2 +- src/libvirt-nwfilter.c | 2 ++ src/libvirt-nwfilter.h | 2 +- src/libvirt-php.c | 2 ++ src/libvirt-php.h | 2 +- src/libvirt-snapshot.c | 2 ++ src/libvirt-snapshot.h | 2 +- src/libvirt-storage.c | 3 +++ src/libvirt-storage.h | 4 ++-- src/libvirt-stream.c | 2 ++ src/libvirt-stream.h | 2 +- 18 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/libvirt-connection.c b/src/libvirt-connection.c index 9e70031..adc0045 100644 --- a/src/libvirt-connection.c +++ b/src/libvirt-connection.c @@ -11,6 +11,8 @@ DEBUG_INIT("connection"); +int le_libvirt_connection; + /* * Private function name: free_resources_on_connection * Since version: 0.4.2 diff --git a/src/libvirt-connection.h b/src/libvirt-connection.h index 0cae5ec..20f79e0 100644 --- a/src/libvirt-connection.h +++ b/src/libvirt-connection.h @@ -46,7 +46,7 @@ RETURN_FALSE; \ } while (0) -int le_libvirt_connection; +extern int le_libvirt_connection; typedef struct _php_libvirt_connection { virConnectPtr conn; diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index f594253..419630b 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -15,6 +15,8 @@ DEBUG_INIT("domain"); +int le_libvirt_domain; + void php_libvirt_domain_dtor(virt_resource *rsrc TSRMLS_DC) { diff --git a/src/libvirt-domain.h b/src/libvirt-domain.h index 8b80c9c..8640df8 100644 --- a/src/libvirt-domain.h +++ b/src/libvirt-domain.h @@ -120,7 +120,7 @@ PHP_FE(libvirt_list_active_domains, arginfo_libvirt_conn) \ PHP_FE(libvirt_list_inactive_domains, arginfo_libvirt_conn) -int le_libvirt_domain; +extern int le_libvirt_domain; typedef struct _php_libvirt_domain { virDomainPtr domain; diff --git a/src/libvirt-network.c b/src/libvirt-network.c index 673790a..3888780 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -11,6 +11,8 @@ DEBUG_INIT("network"); +int le_libvirt_network; + void php_libvirt_network_dtor(virt_resource *rsrc TSRMLS_DC) { diff --git a/src/libvirt-network.h b/src/libvirt-network.h index 604b803..634c681 100644 --- a/src/libvirt-network.h +++ b/src/libvirt-network.h @@ -45,7 +45,7 @@ PHP_FE(libvirt_list_all_networks, arginfo_libvirt_conn_optflags) \ PHP_FE(libvirt_list_networks, arginfo_libvirt_conn_optflags) -int le_libvirt_network; +extern int le_libvirt_network; typedef struct _php_libvirt_network { virNetworkPtr network; diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c index 5cfe428..e7a8535 100644 --- a/src/libvirt-nodedev.c +++ b/src/libvirt-nodedev.c @@ -11,6 +11,8 @@ DEBUG_INIT("nodedev"); +int le_libvirt_nodedev; + void php_libvirt_nodedev_dtor(virt_resource *rsrc TSRMLS_DC) { diff --git a/src/libvirt-nodedev.h b/src/libvirt-nodedev.h index 350b213..1357037 100644 --- a/src/libvirt-nodedev.h +++ b/src/libvirt-nodedev.h @@ -35,7 +35,7 @@ RETURN_FALSE; \ } while (0) -int le_libvirt_nodedev; +extern int le_libvirt_nodedev; typedef struct _php_libvirt_nodedev { virNodeDevicePtr device; diff --git a/src/libvirt-nwfilter.c b/src/libvirt-nwfilter.c index d949052..fa824cb 100644 --- a/src/libvirt-nwfilter.c +++ b/src/libvirt-nwfilter.c @@ -11,6 +11,8 @@ DEBUG_INIT("nwfilter"); +int le_libvirt_nwfilter; + void php_libvirt_nwfilter_dtor(virt_resource *rsrc TSRMLS_DC) { diff --git a/src/libvirt-nwfilter.h b/src/libvirt-nwfilter.h index c0cebb3..b450419 100644 --- a/src/libvirt-nwfilter.h +++ b/src/libvirt-nwfilter.h @@ -42,7 +42,7 @@ RETURN_FALSE; \ } while (0) \ -int le_libvirt_nwfilter; +extern int le_libvirt_nwfilter; typedef struct _php_libvirt_nwfilter { virNWFilterPtr nwfilter; diff --git a/src/libvirt-php.c b/src/libvirt-php.c index 75cbf68..04f73d9 100644 --- a/src/libvirt-php.c +++ b/src/libvirt-php.c @@ -31,6 +31,8 @@ DEBUG_INIT("core"); +ZEND_DECLARE_MODULE_GLOBALS(libvirt) + #ifndef EXTWIN /* Additional binaries */ const char *features[] = { "screenshot", "create-image", "screenshot-convert", NULL }; diff --git a/src/libvirt-php.h b/src/libvirt-php.h index d6e61c5..f0c77ce 100644 --- a/src/libvirt-php.h +++ b/src/libvirt-php.h @@ -155,7 +155,7 @@ ZEND_BEGIN_MODULE_GLOBALS(libvirt) int binding_resources_count; ZEND_END_MODULE_GLOBALS(libvirt) -ZEND_DECLARE_MODULE_GLOBALS(libvirt) +ZEND_EXTERN_MODULE_GLOBALS(libvirt) /* Private definitions */ void set_error(char *msg TSRMLS_DC); diff --git a/src/libvirt-snapshot.c b/src/libvirt-snapshot.c index e1445a2..3b10c10 100644 --- a/src/libvirt-snapshot.c +++ b/src/libvirt-snapshot.c @@ -11,6 +11,8 @@ DEBUG_INIT("snapshot"); +int le_libvirt_snapshot; + void php_libvirt_snapshot_dtor(virt_resource *rsrc TSRMLS_DC) { php_libvirt_snapshot *snapshot = (php_libvirt_snapshot *)rsrc->ptr; diff --git a/src/libvirt-snapshot.h b/src/libvirt-snapshot.h index 32db210..f8339a6 100644 --- a/src/libvirt-snapshot.h +++ b/src/libvirt-snapshot.h @@ -39,7 +39,7 @@ RETURN_FALSE; \ } while (0) \ -int le_libvirt_snapshot; +extern int le_libvirt_snapshot; typedef struct _php_libvirt_snapshot { virDomainSnapshotPtr snapshot; diff --git a/src/libvirt-storage.c b/src/libvirt-storage.c index 0c0d943..593d4d2 100644 --- a/src/libvirt-storage.c +++ b/src/libvirt-storage.c @@ -12,6 +12,9 @@ DEBUG_INIT("storage"); +int le_libvirt_storagepool; +int le_libvirt_volume; + void php_libvirt_storagepool_dtor(virt_resource *rsrc TSRMLS_DC) { diff --git a/src/libvirt-storage.h b/src/libvirt-storage.h index de972f7..7620c15 100644 --- a/src/libvirt-storage.h +++ b/src/libvirt-storage.h @@ -83,8 +83,8 @@ RETURN_FALSE; \ } while (0) \ -int le_libvirt_storagepool; -int le_libvirt_volume; +extern int le_libvirt_storagepool; +extern int le_libvirt_volume; typedef struct _php_libvirt_storagepool { virStoragePoolPtr pool; diff --git a/src/libvirt-stream.c b/src/libvirt-stream.c index f1fc1ff..11d7752 100644 --- a/src/libvirt-stream.c +++ b/src/libvirt-stream.c @@ -11,6 +11,8 @@ DEBUG_INIT("stream"); +int le_libvirt_stream; + void php_libvirt_stream_dtor(virt_resource *rsrc TSRMLS_DC) { diff --git a/src/libvirt-stream.h b/src/libvirt-stream.h index 89b28a6..c041ccb 100644 --- a/src/libvirt-stream.h +++ b/src/libvirt-stream.h @@ -20,7 +20,7 @@ PHP_FE(libvirt_stream_send, arginfo_libvirt_stream_send) \ PHP_FE(libvirt_stream_recv, arginfo_libvirt_stream_recv) -int le_libvirt_stream; +extern int le_libvirt_stream; typedef struct _php_libvirt_stream { virStreamPtr stream; -- 2.26.2

Skipped tests should be distinguished from failed tests. Exit code 77 is a standard from autoconf. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- tests/functions.phpt.in | 2 +- tests/runtests.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/functions.phpt.in b/tests/functions.phpt.in index 47dba2d..2ec3d79 100644 --- a/tests/functions.phpt.in +++ b/tests/functions.phpt.in @@ -26,7 +26,7 @@ bail("Invalid test name!"); printf("Test $name SKIPPED\n"); - exit(1); + exit(77); } $abs_srcdir = '@abs_srcdir@' ?: getcwd(); diff --git a/tests/runtests.sh b/tests/runtests.sh index 8280be7..2674475 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -18,7 +18,7 @@ run_test() ret=0 php -n -c "${srcdir}/php.ini" "${srcdir}/${name}.phpt" - if [ "x$?" != "x0" ]; then + if [ "x$?" != "x0" && "x$?" != "x77" ]; then if [ "x$nf" == 'x1' ]; then ret=1 else -- 2.26.2

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- tests/test-get-models.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-get-models.phpt b/tests/test-get-models.phpt index 60af7fa..3ed6ec5 100644 --- a/tests/test-get-models.phpt +++ b/tests/test-get-models.phpt @@ -1,9 +1,9 @@ <?php require_once('functions.phpt'); - $conn = libvirt_connect(NULL); + $conn = @libvirt_connect(NULL, false); if (!is_resource($conn)) - bail('Connection to default hypervisor failed'); + skip( basename(__FILE__) ); $soundhw = libvirt_connect_get_soundhw_models($conn, NULL, VIR_CONNECT_FLAG_SOUNDHW_GET_NAMES); $nics = libvirt_connect_get_nic_models($conn); -- 2.26.2

This introduces CI jobs that replace the current jobs used on Jenkins for every platform except FreeBSD. A merge request workflow requires the user to fork the primary git repo into their personal namespace. In general the changes need to be tested against the current libvirt git master. If the user has a fork of the main libvirt repo, we don't want to use that by default as it may be out of date. The general goal is that the CI jobs are self-contained and don't depend on the build artifacts from the libvirt repo. We also want to avoid having an explicit dependency on the libvirt-ci repo, or on the Quay.io service. Contributors to the PHP module need to be able to make code changes which imply CI environment changes and be able to test them in isolation. Thus, the dockerfile recipes for each distro are added in the ci/ sub-directory. The first stage of the CI jobs is to use these recipes to build and publish a container image. These images are then used in the second stage to perform the actual build. The container image build is cached, inheriting from both the primary libvirt project namespace, and the user's private project namespace. Thus the performance hit of building container images will only be felt the first time the project is forked, or when the parent Docker images are rebuilt. The dockerfiles were originally generated using lcitool, but if the user makes a change that introduces new build dependencies, the corresponding packages can be added to the dockerfile recipes directly in the same commit. The change can be propagated back into the libvirt-ci.git repo asynchronously. The build job will do a minimal(-ish) build of libvirt git master and then build the rest of the code against that. Ideally the main libvirt configure script would have a way to request a minimal build of just the API and test driver, but for now we settle for just --without-libvirt which culls a large number of the drivers fairly easily. The CentOS-8 distro is skipped as it dropped the required PHP module. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitlab-ci.yml | 146 +++++++++++++++++++++++++++ ci/README.rst | 12 +++ ci/libvirt-centos-7.Dockerfile | 92 +++++++++++++++++ ci/libvirt-debian-10.Dockerfile | 64 ++++++++++++ ci/libvirt-debian-9.Dockerfile | 67 ++++++++++++ ci/libvirt-debian-sid.Dockerfile | 64 ++++++++++++ ci/libvirt-fedora-31.Dockerfile | 60 +++++++++++ ci/libvirt-fedora-32.Dockerfile | 60 +++++++++++ ci/libvirt-fedora-rawhide.Dockerfile | 61 +++++++++++ ci/libvirt-opensuse-151.Dockerfile | 62 ++++++++++++ ci/libvirt-ubuntu-1804.Dockerfile | 67 ++++++++++++ ci/libvirt-ubuntu-2004.Dockerfile | 64 ++++++++++++ ci/refresh | 22 ++++ 13 files changed, 841 insertions(+) create mode 100644 ci/README.rst create mode 100644 ci/libvirt-centos-7.Dockerfile create mode 100644 ci/libvirt-debian-10.Dockerfile create mode 100644 ci/libvirt-debian-9.Dockerfile create mode 100644 ci/libvirt-debian-sid.Dockerfile create mode 100644 ci/libvirt-fedora-31.Dockerfile create mode 100644 ci/libvirt-fedora-32.Dockerfile create mode 100644 ci/libvirt-fedora-rawhide.Dockerfile create mode 100644 ci/libvirt-opensuse-151.Dockerfile create mode 100644 ci/libvirt-ubuntu-1804.Dockerfile create mode 100644 ci/libvirt-ubuntu-2004.Dockerfile create mode 100755 ci/refresh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50dae92..a8fb4f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,51 @@ stages: - prebuild + - containers + - builds + +.container_job_template: &container_job_definition + image: docker:stable + stage: containers + services: + - docker:dind + before_script: + - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest" + - export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt-php/ci-$NAME:latest" + - docker info + - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + script: + - docker pull "$TAG" || docker pull "$COMMON_TAG" || true + - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/libvirt-$NAME.Dockerfile" ci + - docker push "$TAG" + after_script: + - docker logout + +.git_build_job_template: &git_build_job_definition + image: $CI_REGISTRY_IMAGE/ci-$NAME:latest + stage: builds + before_script: + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" + - export SCRATCH_DIR="/tmp/scratch" + - export VROOT="$SCRATCH_DIR/vroot" + - export LD_LIBRARY_PATH="$VROOT/lib" + - export PATH="$VROOT/bin:$PATH" + - export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig" + - export TEST_MAINTAINER=1 + script: + - pushd "$PWD" + - mkdir -p "$SCRATCH_DIR" + - cd "$SCRATCH_DIR" + - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git + - mkdir libvirt/build + - cd libvirt/build + - ../autogen.sh --prefix="$VROOT" --without-libvirtd + - $MAKE install + - popd + - ./autogen.sh + - make distcheck + after_script: + - find -name test-suite.log | xargs cat # Check that all commits are signed-off for the DCO. # Skip on "libvirt" namespace, since we only need to run @@ -14,3 +59,104 @@ check-dco: except: variables: - $CI_PROJECT_NAMESPACE == 'libvirt' + +centos-7-container: + <<: *container_job_definition + variables: + NAME: centos-7 + +debian-9-container: + <<: *container_job_definition + variables: + NAME: debian-9 + +debian-10-container: + <<: *container_job_definition + variables: + NAME: debian-10 + +debian-sid-container: + <<: *container_job_definition + variables: + NAME: debian-sid + +fedora-31-container: + <<: *container_job_definition + variables: + NAME: fedora-31 + +fedora-32-container: + <<: *container_job_definition + variables: + NAME: fedora-32 + +fedora-rawhide-container: + <<: *container_job_definition + variables: + NAME: fedora-rawhide + +opensuse-151-container: + <<: *container_job_definition + variables: + NAME: opensuse-151 + +ubuntu-1804-container: + <<: *container_job_definition + variables: + NAME: ubuntu-1804 + +ubuntu-2004-container: + <<: *container_job_definition + variables: + NAME: ubuntu-2004 + + +centos-7-git-build: + <<: *git_build_job_definition + variables: + NAME: centos-7 + +debian-9-git-build: + <<: *git_build_job_definition + variables: + NAME: debian-9 + +debian-10-git-build: + <<: *git_build_job_definition + variables: + NAME: debian-10 + +debian-sid-git-build: + <<: *git_build_job_definition + variables: + NAME: debian-sid + +fedora-31-git-build: + <<: *git_build_job_definition + variables: + NAME: fedora-31 + +fedora-32-git-build: + <<: *git_build_job_definition + variables: + NAME: fedora-32 + +fedora-rawhide-git-build: + <<: *git_build_job_definition + variables: + NAME: fedora-rawhide + +opensuse-151-git-build: + <<: *git_build_job_definition + variables: + NAME: opensuse-151 + +ubuntu-1804-git-build: + <<: *git_build_job_definition + variables: + NAME: ubuntu-1804 + +ubuntu-2004-git-build: + <<: *git_build_job_definition + variables: + NAME: ubuntu-2004 diff --git a/ci/README.rst b/ci/README.rst new file mode 100644 index 0000000..fef7a95 --- /dev/null +++ b/ci/README.rst @@ -0,0 +1,12 @@ +CI job assets +============= + +This directory contains assets used in the automated CI jobs, most +notably the Dockerfiles used to build container images in which the +CI jobs then run. + +The `refresh` script is used to re-create the Dockerfiles using the +`lcitool` that is provided by repo `https://gitlab.com/libvirt/libvirt-ci` +The containers are built during the CI process and cached in the GitLab +container registry of the project doing the build. The cached containers +can be deleted at any time and will be correctly rebuilt. diff --git a/ci/libvirt-centos-7.Dockerfile b/ci/libvirt-centos-7.Dockerfile new file mode 100644 index 0000000..c403fb3 --- /dev/null +++ b/ci/libvirt-centos-7.Dockerfile @@ -0,0 +1,92 @@ +FROM centos:7 + +RUN echo -e '[openvz]\n\ +name=OpenVZ addons\n\ +baseurl=https://download.openvz.org/virtuozzo/releases/openvz-7.0.11-235/x86_64/os/\n\ +enabled=1\n\ +gpgcheck=1\n\ +skip_if_unavailable=0\n\ +metadata_expire=6h\n\ +priority=90\n\ +includepkgs=libprl*' > /etc/yum.repos.d/openvz.repo && \ + echo -e '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\ +Version: GnuPG v2.0.22 (GNU/Linux)\n\ +\n\ +mI0EVl80nQEEAKrEeyeTCwrzS9kYedZ/sAc/GUqlb81C7pA9SaR3fyck5mVw1Ogk\n\ +YdmNBPM2kY7QDxR9F0EpSpnxSCAXZXugsQ8KzZ0DRLVeBDQyGs9IGK5hI0zzxIil\n\ +BzfvIexLiQQhLy7YlIi8Jt/uUqKkW0pIMNMGcduY97VATtczpncpkmSzABEBAAG0\n\ +SFZpcnR1b3p6byBUZWFtIChHUEcga2V5IHNpZ25hdHVyZSBmb3IgcGFja2FnZXMp\n\ +IDxzZWN1cml0eUB2aXJ0dW96em8uY29tPoi5BBMBAgAjBQJWXzSdAhsDBwsJCAcD\n\ +AgEGFQgCCQoLBBYCAwECHgECF4AACgkQygt9GUTNrSruIgP/er70Eyo73A1gfrjv\n\ +oPUkyo4rslVRZu3qqCwoMFtJc/Z/UxWgEka1buorlcGLa6eO/EZ49c0n+KGa4Kvt\n\ +EUboIq0yEu5i0FyAj92ifm+hNhoAbGfm0cZ4/fD0oGr3l8OsQo4+iHX4xAPwFe7Y\n\ +zABuB8I1ZDZ4OIp5tDfTTuF2LT24jQRWXzSdAQQAog2Aqb+Ptl68O7cQhWLjVGkj\n\ +yyigZrdeReLx3HloKJPBeQ/kA6uvMJc/IYS3uppMWXv9v+QenS6uhP1TUJ2k9FvM\n\ +t94MQZfALN7Vpf8AF+UeWu4Ru+y4BNzcFhrPhIFNFChOR2QqW6FkgE57D9I177NC\n\ +oJMyrlNe8wcGa178An8AEQEAAYifBBgBAgAJBQJWXzSdAhsMAAoJEMoLfRlEza0q\n\ +bKwD/3+OFVIEXnIv5XgdGRNX5fHggsUN1bb8gva7HANRlKdd4LD8foDM3F/yv/3V\n\ +igG14D5EjKz56SaBDNgiI4++hOzb2M8jhAsR86jxkXFrrP1U3ZNRKg6av9DPFAPS\n\ +WEiJKtQrZDJloqtyi/mmRa1VsV7RYR0VPJjhK/R8EQ7Ysshy\n\ +=fRMg\n\ +-----END PGP PUBLIC KEY BLOCK-----' > /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \ + rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \ + yum install -y epel-release && \ + yum update -y && \ + yum install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + glibc-common \ + glibc-devel \ + gnutls-devel \ + libnl3-devel \ + libtirpc-devel \ + libtool \ + libxml2 \ + libxml2-devel \ + libxslt \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-devel \ + php-pecl-imagick \ + pkgconfig \ + python3 \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + python36-docutils \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + yum autoremove -y && \ + yum clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja-build" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-debian-10.Dockerfile b/ci/libvirt-debian-10.Dockerfile new file mode 100644 index 0000000..a2dea62 --- /dev/null +++ b/ci/libvirt-debian-10.Dockerfile @@ -0,0 +1,64 @@ +FROM debian:10 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc-dev-bin \ + libc6-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libxml2-dev \ + libxml2-utils \ + locales \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-dev \ + php-imagick \ + pkgconf \ + python3 \ + python3-docutils \ + python3-setuptools \ + python3-wheel \ + screen \ + strace \ + sudo \ + vim \ + xsltproc && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-debian-9.Dockerfile b/ci/libvirt-debian-9.Dockerfile new file mode 100644 index 0000000..c92f733 --- /dev/null +++ b/ci/libvirt-debian-9.Dockerfile @@ -0,0 +1,67 @@ +FROM debian:9 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc-dev-bin \ + libc6-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libxml2-dev \ + libxml2-utils \ + locales \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-dev \ + php-imagick \ + pkgconf \ + python3 \ + python3-docutils \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + screen \ + strace \ + sudo \ + vim \ + xsltproc && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-debian-sid.Dockerfile b/ci/libvirt-debian-sid.Dockerfile new file mode 100644 index 0000000..eddd9c1 --- /dev/null +++ b/ci/libvirt-debian-sid.Dockerfile @@ -0,0 +1,64 @@ +FROM debian:sid + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc-dev-bin \ + libc6-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libxml2-dev \ + libxml2-utils \ + locales \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-dev \ + php-imagick \ + pkgconf \ + python3 \ + python3-docutils \ + python3-setuptools \ + python3-wheel \ + screen \ + strace \ + sudo \ + vim \ + xsltproc && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-fedora-31.Dockerfile b/ci/libvirt-fedora-31.Dockerfile new file mode 100644 index 0000000..d0d55b1 --- /dev/null +++ b/ci/libvirt-fedora-31.Dockerfile @@ -0,0 +1,60 @@ +FROM fedora:31 + +RUN dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + libnl3-devel \ + libtirpc-devel \ + libtool \ + libxml2 \ + libxml2-devel \ + libxslt \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-devel \ + php-pecl-imagick \ + pkgconfig \ + python3 \ + python3-docutils \ + python3-setuptools \ + python3-wheel \ + rpcgen \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-fedora-32.Dockerfile b/ci/libvirt-fedora-32.Dockerfile new file mode 100644 index 0000000..66719ae --- /dev/null +++ b/ci/libvirt-fedora-32.Dockerfile @@ -0,0 +1,60 @@ +FROM fedora:32 + +RUN dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + libnl3-devel \ + libtirpc-devel \ + libtool \ + libxml2 \ + libxml2-devel \ + libxslt \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-devel \ + php-pecl-imagick \ + pkgconfig \ + python3 \ + python3-docutils \ + python3-setuptools \ + python3-wheel \ + rpcgen \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-fedora-rawhide.Dockerfile b/ci/libvirt-fedora-rawhide.Dockerfile new file mode 100644 index 0000000..372ffa7 --- /dev/null +++ b/ci/libvirt-fedora-rawhide.Dockerfile @@ -0,0 +1,61 @@ +FROM fedora:rawhide + +RUN dnf update -y --nogpgcheck fedora-gpg-keys && \ + dnf update -y && \ + dnf install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + libnl3-devel \ + libtirpc-devel \ + libtool \ + libxml2 \ + libxml2-devel \ + libxslt \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-devel \ + php-pecl-imagick \ + pkgconfig \ + python3 \ + python3-docutils \ + python3-setuptools \ + python3-wheel \ + rpcgen \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + dnf autoremove -y && \ + dnf clean all -y && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-opensuse-151.Dockerfile b/ci/libvirt-opensuse-151.Dockerfile new file mode 100644 index 0000000..720978c --- /dev/null +++ b/ci/libvirt-opensuse-151.Dockerfile @@ -0,0 +1,62 @@ +FROM opensuse/leap:15.1 + +RUN zypper update -y && \ + zypper install -y \ + autoconf \ + automake \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + cppi \ + gcc \ + gdb \ + gettext \ + gettext-devel \ + git \ + glib2-devel \ + glibc-devel \ + glibc-locale \ + libgnutls-devel \ + libnl3-devel \ + libtirpc-devel \ + libtool \ + libxml2 \ + libxml2-devel \ + libxslt \ + lsof \ + make \ + net-tools \ + ninja \ + patch \ + perl \ + php-devel \ + php-imagick \ + pkgconfig \ + python3 \ + python3-docutils \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + rpcgen \ + rpm-build \ + screen \ + strace \ + sudo \ + vim && \ + zypper clean --all && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-ubuntu-1804.Dockerfile b/ci/libvirt-ubuntu-1804.Dockerfile new file mode 100644 index 0000000..5c5c147 --- /dev/null +++ b/ci/libvirt-ubuntu-1804.Dockerfile @@ -0,0 +1,67 @@ +FROM ubuntu:18.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc-dev-bin \ + libc6-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libxml2-dev \ + libxml2-utils \ + locales \ + lsof \ + make \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-dev \ + php-imagick \ + pkgconf \ + python3 \ + python3-docutils \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + screen \ + strace \ + sudo \ + vim \ + xsltproc && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +RUN pip3 install \ + meson==0.49.0 + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/libvirt-ubuntu-2004.Dockerfile b/ci/libvirt-ubuntu-2004.Dockerfile new file mode 100644 index 0000000..0148720 --- /dev/null +++ b/ci/libvirt-ubuntu-2004.Dockerfile @@ -0,0 +1,64 @@ +FROM ubuntu:20.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ca-certificates \ + ccache \ + chrony \ + gcc \ + gdb \ + gettext \ + git \ + libc-dev-bin \ + libc6-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libxml2-dev \ + libxml2-utils \ + locales \ + lsof \ + make \ + meson \ + net-tools \ + ninja-build \ + patch \ + perl \ + php-dev \ + php-imagick \ + pkgconf \ + python3 \ + python3-docutils \ + python3-setuptools \ + python3-wheel \ + screen \ + strace \ + sudo \ + vim \ + xsltproc && \ + apt-get autoremove -y && \ + apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" + +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/refresh b/ci/refresh new file mode 100755 index 0000000..fbeb80e --- /dev/null +++ b/ci/refresh @@ -0,0 +1,22 @@ +#!/bin/sh + +if test -z "$1" +then + echo "syntax: $0 PATH-TO-LCITOOL" + exit 1 +fi + +LCITOOL=$1 + +if ! test -x "$LCITOOL" +then + echo "$LCITOOL is not executable" + exit 1 +fi + +HOSTS=$($LCITOOL hosts | grep -v freebsd | grep -v libvirt-centos-8) + +for host in $HOSTS +do + $LCITOOL dockerfile $host libvirt+minimal,libvirt-php > $host.Dockerfile +done -- 2.26.2

On Mon, 2020-05-04 at 18:40 +0100, Daniel P. Berrangé wrote:
This introduces CI jobs that replace the current jobs used on Jenkins for every platform except FreeBSD.
That would be correct, if not for the fact that we never actually added libvirt-php to our Jenkins-based CI environment ;) In general, I think you can use a much shorter commit message similar to the one you've used for libvirt-rust, but as long as you remove the bit above you can keep the current one too. [...]
+centos-7-git-build: + <<: *git_build_job_definition + variables: + NAME: centos-7 + +debian-9-git-build: + <<: *git_build_job_definition + variables: + NAME: debian-9
So we're never building against the distro-provided libvirt package. Is there a reason for that? Does it even make sense to build against a git checkout on all these platforms? -- Andrea Bolognani / Red Hat / Virtualization

With the introduction of automated CI pipelines, we are now ready to switch to using merge requests for the project. With this switch we longer wish to have patches sent to the mailing list, and thus the git-publish config is removed. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .gitpublish | 4 ---- CONTRIBUTING.rst | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) delete mode 100644 .gitpublish create mode 100644 CONTRIBUTING.rst diff --git a/.gitpublish b/.gitpublish deleted file mode 100644 index 2aa35a2..0000000 --- a/.gitpublish +++ /dev/null @@ -1,4 +0,0 @@ -[gitpublishprofile "default"] -base = master -to = libvir-list@redhat.com -prefix = libvirt-php PATCH diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..5bf29a6 --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,28 @@ +=========================== +Contributing to libvirt-php +=========================== + +The libvirt PHP API binding accepts code contributions via merge requests +on the GitLab project: + +https://gitlab.com/libvirt/libvirt-php/-/merge_requests + +It is required that automated CI pipelines succeed before a merge request +will be accepted. The global pipeline status for the ``master`` branch is +visible at: + +https://gitlab.com/libvirt/libvirt-php/pipelines + +CI pipeline results for merge requests will be visible via the contributors' +own private repository fork: + +https://gitlab.com/yourusername/libvirt-php/pipelines + +Contributions submitted to the project must be in compliance with the +Developer Certificate of Origin Version 1.1. This is documented at: + +https://developercertificate.org/ + +To indicate compliance, each commit in a series must have a "Signed-off-by" +tag with the submitter's name and email address. This can be added by passing +the ``-s`` flag to ``git commit`` when creating the patches. -- 2.26.2

On Mon, 2020-05-04 at 18:40 +0100, Daniel P. Berrangé wrote:
+++ b/CONTRIBUTING.rst @@ -0,0 +1,28 @@ +=========================== +Contributing to libvirt-php +=========================== + +The libvirt PHP API binding accepts code contributions via merge requests +on the GitLab project:
s/binding/bindings/ With that fixed, Reviewed-by: Andrea Bolognani <abologna@redhat.com> As was the case for libvirt-php, I don't feel qualified reviewing actual code changes... Hopefully Michal will take care of that :) -- Andrea Bolognani / Red Hat / Virtualization

On 5/4/20 7:40 PM, Daniel P. Berrangé wrote:
This series introduces use of GitLab CI and merge requests. In doing so several current build problems are fixes.
Daniel P. Berrangé (6): m4: ignore --php-binary if it doesn't exist src: don't declare global variables in header files tests: mark skipped tests with exit status 77 tests: skip test if not running on host with running libvirtd gitlab: add CI jobs for validating build across platforms gitlab: add CONTRIBUTING.rst file to indicate use of merge requests
.gitlab-ci.yml | 146 +++++++++++++++++++++++++++ .gitpublish | 4 - CONTRIBUTING.rst | 28 +++++ ci/README.rst | 12 +++ ci/libvirt-centos-7.Dockerfile | 92 +++++++++++++++++ ci/libvirt-debian-10.Dockerfile | 64 ++++++++++++ ci/libvirt-debian-9.Dockerfile | 67 ++++++++++++ ci/libvirt-debian-sid.Dockerfile | 64 ++++++++++++ ci/libvirt-fedora-31.Dockerfile | 60 +++++++++++ ci/libvirt-fedora-32.Dockerfile | 60 +++++++++++ ci/libvirt-fedora-rawhide.Dockerfile | 61 +++++++++++ ci/libvirt-opensuse-151.Dockerfile | 62 ++++++++++++ ci/libvirt-ubuntu-1804.Dockerfile | 67 ++++++++++++ ci/libvirt-ubuntu-2004.Dockerfile | 64 ++++++++++++ ci/refresh | 22 ++++ m4/virt-php-extension.m4 | 2 +- src/libvirt-connection.c | 2 + src/libvirt-connection.h | 2 +- src/libvirt-domain.c | 2 + src/libvirt-domain.h | 2 +- src/libvirt-network.c | 2 + src/libvirt-network.h | 2 +- src/libvirt-nodedev.c | 2 + src/libvirt-nodedev.h | 2 +- src/libvirt-nwfilter.c | 2 + src/libvirt-nwfilter.h | 2 +- src/libvirt-php.c | 2 + src/libvirt-php.h | 2 +- src/libvirt-snapshot.c | 2 + src/libvirt-snapshot.h | 2 +- src/libvirt-storage.c | 3 + src/libvirt-storage.h | 4 +- src/libvirt-stream.c | 2 + src/libvirt-stream.h | 2 +- tests/functions.phpt.in | 2 +- tests/runtests.sh | 2 +- tests/test-get-models.phpt | 4 +- 37 files changed, 903 insertions(+), 19 deletions(-) delete mode 100644 .gitpublish create mode 100644 CONTRIBUTING.rst create mode 100644 ci/README.rst create mode 100644 ci/libvirt-centos-7.Dockerfile create mode 100644 ci/libvirt-debian-10.Dockerfile create mode 100644 ci/libvirt-debian-9.Dockerfile create mode 100644 ci/libvirt-debian-sid.Dockerfile create mode 100644 ci/libvirt-fedora-31.Dockerfile create mode 100644 ci/libvirt-fedora-32.Dockerfile create mode 100644 ci/libvirt-fedora-rawhide.Dockerfile create mode 100644 ci/libvirt-opensuse-151.Dockerfile create mode 100644 ci/libvirt-ubuntu-1804.Dockerfile create mode 100644 ci/libvirt-ubuntu-2004.Dockerfile create mode 100755 ci/refresh
Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Thanks for cleaning up the header files too. Michal
participants (3)
-
Andrea Bolognani
-
Daniel P. Berrangé
-
Michal Privoznik