From 2152331ebf0821089f44dbf468a157a0cf3013a0 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Mon, 11 Feb 2019 15:58:37 +0000 Subject: [PATCH] Replace deprecated bindep-fallback testing Adopts testing using in-repo bindep.txt testing file instead of using the deprecated externally hosted bindep-fallback.txt file. Initial file is the same but in the future we may want to simplify it. Change-Id: I570fe8686068478a163e4fe597514460b6a69fef --- .zuul.yaml | 54 ++++---- README.rst | 11 +- bindep/tests/bindep.txt | 115 ++++++++++++++++++ .../{bindep-fallback => bindep}/run.yaml | 7 +- 4 files changed, 151 insertions(+), 36 deletions(-) create mode 100644 bindep/tests/bindep.txt rename playbooks/{bindep-fallback => bindep}/run.yaml (75%) diff --git a/.zuul.yaml b/.zuul.yaml index 382e6de..eee6683 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,52 +1,52 @@ - job: - name: bindep-fallback + name: bindep-base description: | - Check that bindep can install packages from - openstack-infra/project-config/nodepool/elements/bindep-fallback.txt. + Check that bindep itself can install packages on various platforms. + abstract: true roles: - zuul: openstack-infra/zuul-jobs - run: playbooks/bindep-fallback/run.yaml + run: playbooks/bindep/run.yaml vars: zuul_work_dir: '{{ zuul.project.src_dir }}' zuul_work_virtualenv: '{{ ansible_user_dir }}/.venv' - job: - name: bindep-fallback-centos-7 - parent: bindep-fallback + name: bindep-centos-7 + parent: bindep-base nodeset: centos-7 - job: - name: bindep-fallback-opensuse-423 - parent: bindep-fallback - nodeset: opensuse-423 - -- job: - name: bindep-fallback-opensuse-150 - parent: bindep-fallback + name: bindep-opensuse-150 + parent: bindep-base nodeset: opensuse-150 - job: - name: bindep-fallback-ubuntu-trusty - parent: bindep-fallback + name: bindep-opensuse-423 + parent: bindep-base + nodeset: opensuse-423 + +- job: + name: bindep-ubuntu-trusty + parent: bindep-base nodeset: ubuntu-trusty - job: - name: bindep-fallback-ubuntu-xenial - parent: bindep-fallback + name: bindep-ubuntu-xenial + parent: bindep-base nodeset: ubuntu-xenial - project: check: jobs: - - bindep-fallback-centos-7 - - bindep-fallback-opensuse-423 - - bindep-fallback-opensuse-150 - - bindep-fallback-ubuntu-trusty - - bindep-fallback-ubuntu-xenial + - bindep-centos-7 + - bindep-opensuse-150 + - bindep-opensuse-423 + - bindep-ubuntu-trusty + - bindep-ubuntu-xenial gate: jobs: - - bindep-fallback-centos-7 - - bindep-fallback-opensuse-423 - - bindep-fallback-opensuse-150 - - bindep-fallback-ubuntu-trusty - - bindep-fallback-ubuntu-xenial + - bindep-centos-7 + - bindep-opensuse-150 + - bindep-opensuse-423 + - bindep-ubuntu-trusty + - bindep-ubuntu-xenial diff --git a/README.rst b/README.rst index 2a097e5..171a178 100644 --- a/README.rst +++ b/README.rst @@ -119,12 +119,6 @@ bindep would select the ``libffi6`` package in all cases and if the ``test`` profile gets choosen with ``bindep test``, then both packages would be selected. -The following content gives some examples as used in the `default bindep file -`_ -that OpenStack CI takes if no ``bindep.txt`` file exists for setup of -some jobs. The examples only use the automatically defined profiles -like ``platform:dpkg`` which is defined on Debian based systems. - If a repository needs for deployment the libxml2 development libraries for support of Debian, Gentoo, and RPM based distros, the ``bindep.txt`` file can contain:: @@ -175,3 +169,8 @@ To select a package based on a group of profiles:: This selects the ``ceph-common`` package when the profile ``ceph`` is specified. However, it will only select the ``python-rbd`` package when both ``ceph`` and ``glance`` profiles are active. + +For a more comprehensive example check bindep.txt_ file that is used to +test bindep itself on multiple platforms. + +.. _bindep.txt: http://git.openstack.org/cgit/openstack-infra/bindep/tree/bindep/tests/bindep.txt diff --git a/bindep/tests/bindep.txt b/bindep/tests/bindep.txt new file mode 100644 index 0000000..bc4c3d7 --- /dev/null +++ b/bindep/tests/bindep.txt @@ -0,0 +1,115 @@ +# This is the fallback list for packages to install. Do not add +# additional packages here. Repositories should use bindep and create +# their own bindep.txt files if the list below is not +# working for them. + +build-essential [platform:dpkg] +curl [!platform:gentoo] +net-misc/curl [platform:gentoo] +dev-libs/cyrus-sasl [platform:gentoo] +cyrus-sasl-devel [platform:rpm] +media-fonts/nanumfont [platform:gentoo] +fonts-nanum [platform:dpkg] +media-fonts/takao-fonts [platform:gentoo] +fonts-takao [platform:dpkg] +gawk +gettext [!platform:suse] +gettext-runtime [platform:suse] +graphviz [!platform:gentoo] +media-gfx/graphviz [platform:gentoo] +language-pack-en [platform:ubuntu] +libcurl-devel [platform:rpm] +libcurl4-gnutls-dev [platform:dpkg] +libevent-dev [platform:dpkg] +libevent-devel [platform:rpm] +dev-libs/libevent [platform:gentoo] +libffi-dev [platform:dpkg] +libffi-devel [platform:redhat platform:suse !platform:opensuse423] +libffi48-devel [platform:opensuse423] +virtual/libffi [platform:gentoo] +libjerasure-dev [platform:ubuntu] +dev-libs/jerasure [platform:gentoo] +libjpeg-dev [platform:dpkg] +libjpeg8-devel [platform:suse] +libjpeg-turbo-devel [platform:redhat] +media-libs/libjpeg-turbo [platform:gentoo] +libldap2-dev [platform:dpkg] +net-nds/openldap [platform:gentoo] +libmysqlclient-dev [platform:dpkg] +libpcap-dev [platform:dpkg] +libpcap-devel [platform:rpm] +net-libs/libpcap [platform:gentoo] +libpq-dev [platform:dpkg] +librrd-dev [platform:dpkg] +net-analyzer/rrdtool [platform:gentoo] +libsasl2-dev [platform:dpkg] +libselinux-python [platform:redhat] +python-selinux [platform:suse] +sys-libs/libselinux [platform:gentoo] +libsqlite3-dev [platform:dpkg] +libuuid-devel [platform:rpm] +libvirt-dev [platform:dpkg] +libvirt-devel [platform:rpm] +app-emulation/libvirt [platform:gentoo] +libvirt-python [platform:rpm] +dev-python/libvirt-python [platform:gentoo] +libxml2-dev [platform:dpkg] +libxml2-devel [platform:rpm] +libxml2-utils [platform:dpkg] +dev-libs/libxml2 [platform:gentoo] +libxslt-devel [platform:rpm] +libxslt1-dev [platform:dpkg] +dev-libs/libxslt [platform:gentoo] +locales [platform:debian] +mariadb [platform:rpm] +mariadb-server [platform:redhat] +mariadb-devel [platform:redhat] +libmysqlclient-devel [platform:suse] +dev-db/mariadb [platform:gentoo] +memcached +mysql-client [platform:dpkg] +mysql-server [platform:dpkg] +openldap-devel [platform:redhat] +openldap2-devel [platform:suse] +pkg-config [platform:dpkg platform:suse] +pkgconfig [platform:redhat] +virtual/pkgconfig [platform:gentoo] +postgresql +postgresql-client [platform:dpkg] +postgresql-devel [platform:rpm] +postgresql-server [platform:rpm] +pypy [platform:ubuntu] +pypy-dev [platform:ubuntu] +python-dev [platform:dpkg] +python-devel [platform:rpm] +dev-lang/python [platform:gentoo] +python-libvirt [platform:dpkg] +python-lxml [!platform:gentoo !platform:fedora] +python2-lxml [platform:fedora] +dev-python/lxml [platform:gentoo] +# Note that python3-all-dev includes python3-all, added +# both here for documentary purpose. +python3-all [platform:dpkg] +python3-all-dev [platform:dpkg] +python3-devel [platform:fedora platform:suse] +# python3-devel does not pull in the python3 package on openSUSE so +# we need to be explicit. The python3 package contains the XML module +# which is required by a python3 virtualenv. Similarly, in python2, +# the XML module is located in python-xml which is not pulled in +# by python-devel as well. See https://bugzilla.suse.com/show_bug.cgi?id=1046990 +python3 [platform:suse] +python-xml [platform:suse] +rrdtool-devel [platform:rpm] +sqlite [platform:redhat] +sqlite-devel [platform:redhat] +sqlite3-devel [platform:suse] +sqlite3 [platform:dpkg] +dev-db/sqlite [platform:gentoo] +swig +unzip +uuid-dev [platform:dpkg] +xsltproc [platform:dpkg] +zip +zlib-devel [platform:rpm] +zlib1g-dev [platform:dpkg] +sys-libs/zlib [platform:gentoo] diff --git a/playbooks/bindep-fallback/run.yaml b/playbooks/bindep/run.yaml similarity index 75% rename from playbooks/bindep-fallback/run.yaml rename to playbooks/bindep/run.yaml index f80b390..3b119e4 100644 --- a/playbooks/bindep-fallback/run.yaml +++ b/playbooks/bindep/run.yaml @@ -1,8 +1,6 @@ - hosts: all vars: bindep_profile: test - # Define the global file so that no local file gets used. - bindep_file: /usr/local/bindep-fallback/bindep-fallback.txt tasks: - name: Install requirements pip: @@ -17,7 +15,10 @@ name: . - name: Run bindep with the file - command: "{{ zuul_work_virtualenv }}/bin/bindep -b -f {{ bindep_file }} {{ bindep_profile }}" + command: > + {{ zuul_work_virtualenv }}/bin/bindep -b -f + "{{ ansible_user_dir }}/{{ zuul.projects['git.openstack.org/openstack-infra/bindep'].src_dir }}/bindep/tests/bindep.txt" + {{ bindep_profile }} register: _bindep_output changed_when: false failed_when: false