[libvirt] [PATCH v2 0/5] travis: Use pre-built Docker images

Changes from [v1]: * store Dockerfiles in git so that we can have automated builds on Docker Hub; * add MinGW builds; * change image naming convention, from eg. libvirt/build:fedora-28 to libvirt/buildenv-fedora-28. [v1] https://www.redhat.com/archives/libvir-list/2018-June/msg00920.html Andrea Bolognani (5): docker: Commit initial Dockerfiles travis: Drop Ubuntu 16.04 build travis: Use pre-built Docker images travis: Add CentOS 7 build travis: Add MinGW builds .docker/buildenv-centos-7.Dockerfile | 70 ++++++++++++++ .docker/buildenv-debian-8.Dockerfile | 76 +++++++++++++++ .docker/buildenv-debian-9.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-debian-sid.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-27.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-28.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-rawhide.Dockerfile | 102 +++++++++++++++++++++ .docker/buildenv-ubuntu-16.Dockerfile | 79 ++++++++++++++++ .docker/buildenv-ubuntu-18.Dockerfile | 79 ++++++++++++++++ .travis.yml | 101 ++++++-------------- 10 files changed, 745 insertions(+), 74 deletions(-) create mode 100644 .docker/buildenv-centos-7.Dockerfile create mode 100644 .docker/buildenv-debian-8.Dockerfile create mode 100644 .docker/buildenv-debian-9.Dockerfile create mode 100644 .docker/buildenv-debian-sid.Dockerfile create mode 100644 .docker/buildenv-fedora-27.Dockerfile create mode 100644 .docker/buildenv-fedora-28.Dockerfile create mode 100644 .docker/buildenv-fedora-rawhide.Dockerfile create mode 100644 .docker/buildenv-ubuntu-16.Dockerfile create mode 100644 .docker/buildenv-ubuntu-18.Dockerfile -- 2.17.1

These have been generated from the build dependency data available in the libvirt-jenkins-ci repository, and will be refreshed periodically to keep them in sync the same way we've updated .travis.yml so far; my guess, based on that effort, is that we'll need to do so about once per release. Automated builds will be set up on Docker Hub so that changes to the Dockerfiles will cause the images to be regenerated, and with that in place (a subset of) the resulting images will be used in the Travis CI pipeline, as well of course as being available to developers for testing and debugging purposes. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- POC script used to generate the files: https://www.redhat.com/archives/libvir-list/2018-June/msg01238.html Preview of what the images will look like: https://hub.docker.com/r/andreabolognani/buildenv-centos-7/ https://hub.docker.com/r/andreabolognani/buildenv-fedora-rawhide/ https://hub.docker.com/r/andreabolognani/buildenv-ubuntu-18/ libvirt.git feels like a sensible enough place to store these files, especially considering that we've been storing pretty much the same information in .travis.yml up until now; that said, I don't love the idea of tracking what is ultimately generated data, so I'm open to creating a separate, ad-hoc repository (libvirt-dockerfiles.git?) instead. .docker/buildenv-centos-7.Dockerfile | 70 ++++++++++++++ .docker/buildenv-debian-8.Dockerfile | 76 +++++++++++++++ .docker/buildenv-debian-9.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-debian-sid.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-27.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-28.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-rawhide.Dockerfile | 102 +++++++++++++++++++++ .docker/buildenv-ubuntu-16.Dockerfile | 79 ++++++++++++++++ .docker/buildenv-ubuntu-18.Dockerfile | 79 ++++++++++++++++ 9 files changed, 718 insertions(+) create mode 100644 .docker/buildenv-centos-7.Dockerfile create mode 100644 .docker/buildenv-debian-8.Dockerfile create mode 100644 .docker/buildenv-debian-9.Dockerfile create mode 100644 .docker/buildenv-debian-sid.Dockerfile create mode 100644 .docker/buildenv-fedora-27.Dockerfile create mode 100644 .docker/buildenv-fedora-28.Dockerfile create mode 100644 .docker/buildenv-fedora-rawhide.Dockerfile create mode 100644 .docker/buildenv-ubuntu-16.Dockerfile create mode 100644 .docker/buildenv-ubuntu-18.Dockerfile diff --git a/.docker/buildenv-centos-7.Dockerfile b/.docker/buildenv-centos-7.Dockerfile new file mode 100644 index 0000000000..5d92bfabc5 --- /dev/null +++ b/.docker/buildenv-centos-7.Dockerfile @@ -0,0 +1,70 @@ +FROM centos:centos7 +ENV PACKAGES audit-libs-devel \ + augeas \ + autoconf \ + automake \ + avahi-devel \ + bash \ + bash-completion \ + chrony \ + cyrus-sasl-devel \ + dbus-devel \ + device-mapper-devel \ + dnsmasq \ + ebtables \ + fuse-devel \ + gcc \ + gettext \ + gettext-devel \ + git \ + glibc-common \ + glibc-devel \ + glusterfs-api-devel \ + gnutls-devel \ + iproute \ + iscsi-initiator-utils \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd1-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libtool \ + libudev-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + netcf-devel \ + nfs-utils \ + numactl-devel \ + numad \ + parted \ + parted-devel \ + patch \ + perl \ + pkgconfig \ + polkit \ + qemu-img \ + radvd \ + readline-devel \ + rpm-build \ + sanlock-devel \ + screen \ + scrub \ + sudo \ + systemtap-sdt-devel \ + vim \ + yajl-devel +RUN yum install -y ${PACKAGES} && \ + yum autoremove -y && \ + yum clean all -y diff --git a/.docker/buildenv-debian-8.Dockerfile b/.docker/buildenv-debian-8.Dockerfile new file mode 100644 index 0000000000..0766cc99e9 --- /dev/null +++ b/.docker/buildenv-debian-8.Dockerfile @@ -0,0 +1,76 @@ +FROM debian:8 +ENV PACKAGES augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + glusterfs-client \ + iproute2 \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libavahi-client-dev \ + libblkid-dev \ + libc-dev-bin \ + libc6-dev \ + libcap-ng-dev \ + libcurl4-gnutls-dev \ + libdbus-1-dev \ + libdevmapper-dev \ + libfuse-dev \ + libgnutls28-dev \ + libnetcf-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libparted-dev \ + libpcap-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-gcrypt-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + lvm2 \ + make \ + nfs-common \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-dev \ + vim \ + xsltproc \ + zfs-fuse +RUN apt-get update && \ + apt-get install -y ${PACKAGES} && \ + apt-get autoremove -y && \ + apt-get autoclean -y diff --git a/.docker/buildenv-debian-9.Dockerfile b/.docker/buildenv-debian-9.Dockerfile new file mode 100644 index 0000000000..e106574aa9 --- /dev/null +++ b/.docker/buildenv-debian-9.Dockerfile @@ -0,0 +1,78 @@ +FROM debian:9 +ENV PACKAGES augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + glusterfs-client \ + iproute2 \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libavahi-client-dev \ + libblkid-dev \ + libc-dev-bin \ + libc6-dev \ + libcap-ng-dev \ + libcurl4-gnutls-dev \ + libdbus-1-dev \ + libdevmapper-dev \ + libfuse-dev \ + libgnutls28-dev \ + libnetcf-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libparted-dev \ + libpcap-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-gcrypt-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-dev \ + vim \ + wireshark-dev \ + xsltproc \ + zfs-fuse +RUN apt-get update && \ + apt-get install -y ${PACKAGES} && \ + apt-get autoremove -y && \ + apt-get autoclean -y diff --git a/.docker/buildenv-debian-sid.Dockerfile b/.docker/buildenv-debian-sid.Dockerfile new file mode 100644 index 0000000000..c3a18be76d --- /dev/null +++ b/.docker/buildenv-debian-sid.Dockerfile @@ -0,0 +1,78 @@ +FROM debian:sid +ENV PACKAGES augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + glusterfs-client \ + iproute2 \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libavahi-client-dev \ + libblkid-dev \ + libc-dev-bin \ + libc6-dev \ + libcap-ng-dev \ + libcurl4-gnutls-dev \ + libdbus-1-dev \ + libdevmapper-dev \ + libfuse-dev \ + libgnutls28-dev \ + libnetcf-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libparted-dev \ + libpcap-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-gcrypt-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-dev \ + vim \ + wireshark-dev \ + xsltproc \ + zfs-fuse +RUN apt-get update && \ + apt-get install -y ${PACKAGES} && \ + apt-get autoremove -y && \ + apt-get autoclean -y diff --git a/.docker/buildenv-fedora-27.Dockerfile b/.docker/buildenv-fedora-27.Dockerfile new file mode 100644 index 0000000000..4e5173fe9d --- /dev/null +++ b/.docker/buildenv-fedora-27.Dockerfile @@ -0,0 +1,78 @@ +FROM fedora:27 +ENV PACKAGES audit-libs-devel \ + augeas \ + autoconf \ + automake \ + avahi-devel \ + bash \ + bash-completion \ + ccache \ + chrony \ + cppi \ + cyrus-sasl-devel \ + dbus-devel \ + device-mapper-devel \ + dnsmasq \ + dwarves \ + ebtables \ + fuse-devel \ + gcc \ + gettext \ + gettext-devel \ + git \ + glibc-common \ + glibc-devel \ + glusterfs-api-devel \ + gnutls-devel \ + iproute \ + iproute-tc \ + iscsi-initiator-utils \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libtool \ + libudev-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + netcf-devel \ + nfs-utils \ + numactl-devel \ + numad \ + parted \ + parted-devel \ + patch \ + perl \ + pkgconfig \ + polkit \ + qemu-img \ + radvd \ + readline-devel \ + rpm-build \ + sanlock-devel \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-devel \ + vim \ + wireshark-devel \ + xen-devel \ + yajl-devel \ + zfs-fuse +RUN yum install -y ${PACKAGES} && \ + yum autoremove -y && \ + yum clean all -y diff --git a/.docker/buildenv-fedora-28.Dockerfile b/.docker/buildenv-fedora-28.Dockerfile new file mode 100644 index 0000000000..d051d65219 --- /dev/null +++ b/.docker/buildenv-fedora-28.Dockerfile @@ -0,0 +1,78 @@ +FROM fedora:28 +ENV PACKAGES audit-libs-devel \ + augeas \ + autoconf \ + automake \ + avahi-devel \ + bash \ + bash-completion \ + ccache \ + chrony \ + cppi \ + cyrus-sasl-devel \ + dbus-devel \ + device-mapper-devel \ + dnsmasq \ + dwarves \ + ebtables \ + fuse-devel \ + gcc \ + gettext \ + gettext-devel \ + git \ + glibc-devel \ + glusterfs-api-devel \ + gnutls-devel \ + iproute \ + iproute-tc \ + iscsi-initiator-utils \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libtool \ + libudev-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + netcf-devel \ + nfs-utils \ + numactl-devel \ + numad \ + parted \ + parted-devel \ + patch \ + perl \ + pkgconfig \ + polkit \ + qemu-img \ + radvd \ + readline-devel \ + rpcgen \ + rpm-build \ + sanlock-devel \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-devel \ + vim \ + wireshark-devel \ + xen-devel \ + yajl-devel \ + zfs-fuse +RUN yum install -y ${PACKAGES} && \ + yum autoremove -y && \ + yum clean all -y diff --git a/.docker/buildenv-fedora-rawhide.Dockerfile b/.docker/buildenv-fedora-rawhide.Dockerfile new file mode 100644 index 0000000000..56d59a1dec --- /dev/null +++ b/.docker/buildenv-fedora-rawhide.Dockerfile @@ -0,0 +1,102 @@ +FROM fedora:rawhide +ENV PACKAGES audit-libs-devel \ + augeas \ + autoconf \ + automake \ + avahi-devel \ + bash \ + bash-completion \ + ccache \ + chrony \ + cppi \ + cyrus-sasl-devel \ + dbus-devel \ + device-mapper-devel \ + dnsmasq \ + dwarves \ + ebtables \ + fuse-devel \ + gcc \ + gettext \ + gettext-devel \ + git \ + glibc-devel \ + glusterfs-api-devel \ + gnutls-devel \ + iproute \ + iproute-tc \ + iscsi-initiator-utils \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libtool \ + libudev-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + mingw32-curl \ + mingw32-dbus \ + mingw32-dlfcn \ + mingw32-gcc \ + mingw32-gettext \ + mingw32-gnutls \ + mingw32-libssh2 \ + mingw32-libxml2 \ + mingw32-openssl \ + mingw32-pkg-config \ + mingw32-portablexdr \ + mingw32-readline \ + mingw64-curl \ + mingw64-dbus \ + mingw64-dlfcn \ + mingw64-gcc \ + mingw64-gettext \ + mingw64-gnutls \ + mingw64-libssh2 \ + mingw64-libxml2 \ + mingw64-openssl \ + mingw64-pkg-config \ + mingw64-portablexdr \ + mingw64-readline \ + netcf-devel \ + nfs-utils \ + numactl-devel \ + numad \ + parted \ + parted-devel \ + patch \ + perl \ + pkgconfig \ + polkit \ + qemu-img \ + radvd \ + readline-devel \ + rpcgen \ + rpm-build \ + sanlock-devel \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-devel \ + vim \ + wireshark-devel \ + xen-devel \ + yajl-devel \ + zfs-fuse +RUN yum install -y ${PACKAGES} && \ + yum autoremove -y && \ + yum clean all -y diff --git a/.docker/buildenv-ubuntu-16.Dockerfile b/.docker/buildenv-ubuntu-16.Dockerfile new file mode 100644 index 0000000000..d2ece05722 --- /dev/null +++ b/.docker/buildenv-ubuntu-16.Dockerfile @@ -0,0 +1,79 @@ +FROM ubuntu:16.04 +ENV PACKAGES augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + glusterfs-client \ + iproute2 \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libavahi-client-dev \ + libblkid-dev \ + libc-dev-bin \ + libc6-dev \ + libcap-ng-dev \ + libcurl4-gnutls-dev \ + libdbus-1-dev \ + libdevmapper-dev \ + libfuse-dev \ + libgnutls28-dev \ + libnetcf-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libopenwsman-dev \ + libparted-dev \ + libpcap-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-dev \ + vim \ + wireshark-dev \ + xsltproc \ + zfs-fuse +RUN apt-get update && \ + apt-get install -y ${PACKAGES} && \ + apt-get autoremove -y && \ + apt-get autoclean -y diff --git a/.docker/buildenv-ubuntu-18.Dockerfile b/.docker/buildenv-ubuntu-18.Dockerfile new file mode 100644 index 0000000000..fdf97ebf90 --- /dev/null +++ b/.docker/buildenv-ubuntu-18.Dockerfile @@ -0,0 +1,79 @@ +FROM ubuntu:18.04 +ENV PACKAGES augeas-tools \ + autoconf \ + automake \ + autopoint \ + bash \ + bash-completion \ + ccache \ + chrony \ + dnsmasq-base \ + dwarves \ + ebtables \ + gcc \ + gettext \ + git \ + glusterfs-client \ + iproute2 \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libavahi-client-dev \ + libblkid-dev \ + libc-dev-bin \ + libc6-dev \ + libcap-ng-dev \ + libcurl4-gnutls-dev \ + libdbus-1-dev \ + libdevmapper-dev \ + libfuse-dev \ + libgnutls28-dev \ + libnetcf-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libopenwsman-dev \ + libparted-dev \ + libpcap-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libtool \ + libtool-bin \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + lvm2 \ + make \ + nfs-common \ + numad \ + open-iscsi \ + parted \ + patch \ + perl \ + pkgconf \ + policykit-1 \ + qemu-utils \ + radvd \ + screen \ + scrub \ + sheepdog \ + sudo \ + systemtap-sdt-dev \ + vim \ + wireshark-dev \ + xsltproc \ + zfs-fuse +RUN apt-get update && \ + apt-get install -y ${PACKAGES} && \ + apt-get autoremove -y && \ + apt-get autoclean -y -- 2.17.1

On Fri, Jun 15, 2018 at 09:06:52AM +0200, Andrea Bolognani wrote:
These have been generated from the build dependency data available in the libvirt-jenkins-ci repository, and will be refreshed periodically to keep them in sync the same way we've updated .travis.yml so far; my guess, based on that effort, is that we'll need to do so about once per release.
Automated builds will be set up on Docker Hub so that changes to the Dockerfiles will cause the images to be regenerated, and with that in place (a subset of) the resulting images will be used in the Travis CI pipeline, as well of course as being available to developers for testing and debugging purposes.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- POC script used to generate the files:
https://www.redhat.com/archives/libvir-list/2018-June/msg01238.html
Preview of what the images will look like:
https://hub.docker.com/r/andreabolognani/buildenv-centos-7/ https://hub.docker.com/r/andreabolognani/buildenv-fedora-rawhide/ https://hub.docker.com/r/andreabolognani/buildenv-ubuntu-18/
libvirt.git feels like a sensible enough place to store these files, especially considering that we've been storing pretty much the same information in .travis.yml up until now; that said, I don't love the idea of tracking what is ultimately generated data, so I'm open to creating a separate, ad-hoc repository (libvirt-dockerfiles.git?) instead.
They really should be just generated directly by a script in the libvirt-jenkins-ci repo, we don't need to check the generated files into git anywhere IMHO. But for short term, this patch is fine.
.docker/buildenv-centos-7.Dockerfile | 70 ++++++++++++++ .docker/buildenv-debian-8.Dockerfile | 76 +++++++++++++++ .docker/buildenv-debian-9.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-debian-sid.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-27.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-28.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-rawhide.Dockerfile | 102 +++++++++++++++++++++ .docker/buildenv-ubuntu-16.Dockerfile | 79 ++++++++++++++++ .docker/buildenv-ubuntu-18.Dockerfile | 79 ++++++++++++++++
Please put them in build-aux/docker, rather than a hidden directory. If that is changed: Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-06-15 at 10:05 +0100, Daniel P. Berrangé wrote:
On Fri, Jun 15, 2018 at 09:06:52AM +0200, Andrea Bolognani wrote:
libvirt.git feels like a sensible enough place to store these files, especially considering that we've been storing pretty much the same information in .travis.yml up until now; that said, I don't love the idea of tracking what is ultimately generated data, so I'm open to creating a separate, ad-hoc repository (libvirt-dockerfiles.git?) instead.
They really should be just generated directly by a script in the libvirt-jenkins-ci repo, we don't need to check the generated files into git anywhere IMHO.
We *do* need to have the Dockerfiles committed *somewhere* for Docker Hub automated builds to work.
.docker/buildenv-centos-7.Dockerfile | 70 ++++++++++++++ .docker/buildenv-debian-8.Dockerfile | 76 +++++++++++++++ .docker/buildenv-debian-9.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-debian-sid.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-27.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-28.Dockerfile | 78 ++++++++++++++++ .docker/buildenv-fedora-rawhide.Dockerfile | 102 +++++++++++++++++++++ .docker/buildenv-ubuntu-16.Dockerfile | 79 ++++++++++++++++ .docker/buildenv-ubuntu-18.Dockerfile | 79 ++++++++++++++++
Please put them in build-aux/docker, rather than a hidden directory.
Will do. -- Andrea Bolognani / Red Hat / Virtualization

On Fri, Jun 15, 2018 at 12:09:39PM +0200, Andrea Bolognani wrote:
On Fri, 2018-06-15 at 10:05 +0100, Daniel P. Berrangé wrote:
On Fri, Jun 15, 2018 at 09:06:52AM +0200, Andrea Bolognani wrote:
libvirt.git feels like a sensible enough place to store these files, especially considering that we've been storing pretty much the same information in .travis.yml up until now; that said, I don't love the idea of tracking what is ultimately generated data, so I'm open to creating a separate, ad-hoc repository (libvirt-dockerfiles.git?) instead.
They really should be just generated directly by a script in the libvirt-jenkins-ci repo, we don't need to check the generated files into git anywhere IMHO.
We *do* need to have the Dockerfiles committed *somewhere* for Docker Hub automated builds to work.
Does docker hub only pull from git repos, or does it have other options for detching the files ? Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-06-15 at 11:28 +0100, Daniel P. Berrangé wrote:
On Fri, Jun 15, 2018 at 12:09:39PM +0200, Andrea Bolognani wrote:
We *do* need to have the Dockerfiles committed *somewhere* for Docker Hub automated builds to work.
Does docker hub only pull from git repos, or does it have other options for detching the files ?
It has to be a git repository, more specifically one hosted on either GitHub or Bitbucket. https://docs.docker.com/docker-hub/builds/ -- Andrea Bolognani / Red Hat / Virtualization

This will make further changes easier; all coverage lost due to this will be reintroduced later on. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index a4a0bbb072..67ad155148 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,12 +13,6 @@ matrix: - IMAGE=ubuntu:18.04 - DISTCHECK_CONFIGURE_FLAGS="--with-init-script=systemd" - DOCKER_CMD="$LINUX_CMD" - - services: - - docker - env: - - IMAGE=ubuntu:16.04 - - DISTCHECK_CONFIGURE_FLAGS="--with-init-script=upstart" - - DOCKER_CMD="$LINUX_CMD" - compiler: clang language: c os: osx -- 2.17.1

On Fri, Jun 15, 2018 at 09:06:53AM +0200, Andrea Bolognani wrote:
This will make further changes easier; all coverage lost due to this will be reintroduced later on.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 6 ------ 1 file changed, 6 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Instead of starting from the minimal Ubuntu 18.04 base image and installing all requirements at build time, use a Docker image that has been specifically tailored at building libvirt and thus already includes all required packages. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 75 ++--------------------------------------------------- 1 file changed, 2 insertions(+), 73 deletions(-) diff --git a/.travis.yml b/.travis.yml index 67ad155148..7a90c4a251 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ matrix: - services: - docker env: - - IMAGE=ubuntu:18.04 + - IMAGE="ubuntu-18" - DISTCHECK_CONFIGURE_FLAGS="--with-init-script=systemd" - DOCKER_CMD="$LINUX_CMD" - compiler: clang @@ -23,13 +23,11 @@ matrix: script: - docker run - --privileged -v $(pwd):/build -w /build -e VIR_TEST_DEBUG="$VIR_TEST_DEBUG" - -e PACKAGES="$PACKAGES" -e DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" - "$IMAGE" + "libvirt/buildenv-$IMAGE" /bin/sh -xc "$DOCKER_CMD" git: @@ -39,8 +37,6 @@ env: global: - VIR_TEST_DEBUG=1 - LINUX_CMD=" - apt-get update && - apt-get install -y \$PACKAGES && ./autogen.sh && make -j3 syntax-check && make -j3 distcheck DISTCHECK_CONFIGURE_FLAGS=\"\$DISTCHECK_CONFIGURE_FLAGS\" || @@ -67,73 +63,6 @@ env: exit 1 ) " - # Please keep this list sorted alphabetically - - PACKAGES=" - augeas-tools - autoconf - automake - autopoint - bash-completion - ccache - dnsmasq-base - dwarves - ebtables - gcc - gettext - git - glusterfs-client - libacl1-dev - libapparmor-dev - libattr1-dev - libaudit-dev - libavahi-client-dev - libblkid-dev - libc6-dev - libcap-ng-dev - libc-dev-bin - libdbus-1-dev - libdevmapper-dev - libfuse-dev - libgnutls28-dev - libnetcf-dev - libnl-3-dev - libnl-route-3-dev - libnuma-dev - libopenwsman-dev - libparted-dev - libpcap-dev - libpciaccess-dev - librbd-dev - libreadline-dev - libsanlock-dev - libsasl2-dev - libselinux1-dev - libssh2-1-dev - libssh-dev - libtirpc-dev - libtool - libudev-dev - libxen-dev - libxml2-dev - libxml2-utils - libyajl-dev - lvm2 - make - nfs-common - open-iscsi - parted - patch - perl - pkgconf - policykit-1 - qemu-utils - radvd - scrub - sheepdog - systemtap-sdt-dev - xsltproc - zfs-fuse - " notifications: irc: -- 2.17.1

On Fri, Jun 15, 2018 at 09:06:54AM +0200, Andrea Bolognani wrote:
Instead of starting from the minimal Ubuntu 18.04 base image and installing all requirements at build time, use a Docker image that has been specifically tailored at building libvirt and thus already includes all required packages.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 75 ++--------------------------------------------------- 1 file changed, 2 insertions(+), 73 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Now that we use pre-built Docker images, it's very easy to extend our test matrix; adding CentOS 7 is a good start. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7a90c4a251..0efa14a1c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,12 @@ matrix: - IMAGE="ubuntu-18" - DISTCHECK_CONFIGURE_FLAGS="--with-init-script=systemd" - DOCKER_CMD="$LINUX_CMD" + - services: + - docker + env: + - IMAGE="centos-7" + - DISTCHECK_CONFIGURE_FLAGS="--with-init-script=upstart" + - DOCKER_CMD="$LINUX_CMD" - compiler: clang language: c os: osx -- 2.17.1

On Fri, Jun 15, 2018 at 09:06:55AM +0200, Andrea Bolognani wrote:
Now that we use pre-built Docker images, it's very easy to extend our test matrix; adding CentOS 7 is a good start.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

We build on Fedora Rawhide, same as on the CentOS CI environment. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0efa14a1c3..56d25b2ecd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,18 @@ matrix: - IMAGE="centos-7" - DISTCHECK_CONFIGURE_FLAGS="--with-init-script=upstart" - DOCKER_CMD="$LINUX_CMD" + - services: + - docker + env: + - IMAGE="fedora-rawhide" + - MINGW="mingw32" + - DOCKER_CMD="$MINGW_CMD" + - services: + - docker + env: + - IMAGE="fedora-rawhide" + - MINGW="mingw64" + - DOCKER_CMD="$MINGW_CMD" - compiler: clang language: c os: osx @@ -32,6 +44,7 @@ script: -v $(pwd):/build -w /build -e VIR_TEST_DEBUG="$VIR_TEST_DEBUG" + -e MINGW="$MINGW" -e DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" "libvirt/buildenv-$IMAGE" /bin/sh -xc "$DOCKER_CMD" @@ -53,6 +66,17 @@ env: exit 1 ) " + - MINGW_CMD=" + NOCONFIGURE=1 ./autogen.sh && + \$MINGW-configure && + make -j3 || + ( + echo '=== LOG FILE(S) START ==='; + find -name test-suite.log | xargs cat; + echo '=== LOG FILE(S) END ==='; + exit 1 + ) + " # We can't run 'distcheck' or 'syntax-check' because they fail on # macOS, but doing 'install' and 'dist' gives us some useful coverage - MACOS_CMD=" -- 2.17.1

On Fri, Jun 15, 2018 at 09:06:56AM +0200, Andrea Bolognani wrote:
We build on Fedora Rawhide, same as on the CentOS CI environment.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .travis.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-06-15 at 09:06 +0200, Andrea Bolognani wrote:
Andrea Bolognani (5): docker: Commit initial Dockerfiles travis: Drop Ubuntu 16.04 build travis: Use pre-built Docker images travis: Add CentOS 7 build travis: Add MinGW builds
This is what it looks like in action: https://travis-ci.org/andreabolognani/libvirt/builds/392346367 ... which also proves it actually works ;) -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Daniel P. Berrangé