[dm-devel] [PATCH 0/7] multipath-tools: extended github CI

mwilck at suse.com mwilck at suse.com
Fri Mar 26 21:29:37 UTC 2021


From: Martin Wilck <mwilck at suse.com>

Hi Christophe, hi Ben,

I've spent most of this week trying to improve the multipath-tools
CI workflows on github. I now have CI workflows for 7 different
distributions covering ~6 years of development, and 5 different
architectures, running routinely on Github. While I found only one
minor bug in multipath-tools in this process, I hope this will help
avoiding regressions on less frequently-tested distributions in the
future. Please read the commit message of the patch "github workflows: 
add containerized / multi-arch tests" for the details.

You can see this in action on https://github.com/openSUSE/multipath-tools/actions.
The patch set is included in the "tip" branch.

What we need now is more unit tests; our code coverage is still
pretty pathetic.

LOC-wise, the bulk of this patch set are libdmmp man pages. These are
almost 100% static. Including them in git allows us to get rid of perl
as a build-time requirement, which will allow me (in the future) to
reduce the size of the build container images significantly.

Regards
Martin

Martin Wilck (7):
  multipath-tools Makefiles: make pkg-config configurable
  multipath-tools Makefiles: allow building test programs only
  github workflows: add containerized / multi-arch tests
  libdmmp: allow building without perl
  multipath-tools Makefile: build before install
  fixup "multipath-tools tests: check if /sys/dev/block is non-empty"
  libmultipath: fix warning with clang 3.5

 .github/workflows/build-and-unittest.yaml     |  4 +-
 .github/workflows/foreign.yaml                | 65 +++++++++++++++++++
 .github/workflows/native.yaml                 | 31 +++++++++
 Makefile                                      |  9 ++-
 Makefile.inc                                  |  6 +-
 libdmmp/Makefile                              | 41 +++++-------
 libdmmp/docs/man/dmmp_context_free.3          | 15 +++++
 libdmmp/docs/man/dmmp_context_log_func_set.3  | 21 ++++++
 .../docs/man/dmmp_context_log_priority_get.3  | 23 +++++++
 .../docs/man/dmmp_context_log_priority_set.3  | 29 +++++++++
 libdmmp/docs/man/dmmp_context_new.3           | 19 ++++++
 libdmmp/docs/man/dmmp_context_timeout_get.3   | 15 +++++
 libdmmp/docs/man/dmmp_context_timeout_set.3   | 19 ++++++
 libdmmp/docs/man/dmmp_context_userdata_get.3  | 15 +++++
 libdmmp/docs/man/dmmp_context_userdata_set.3  | 18 +++++
 libdmmp/docs/man/dmmp_flush_mpath.3           | 36 ++++++++++
 libdmmp/docs/man/dmmp_last_error_msg.3        | 16 +++++
 libdmmp/docs/man/dmmp_log_priority_str.3      | 24 +++++++
 libdmmp/docs/man/dmmp_mpath_array_free.3      | 18 +++++
 libdmmp/docs/man/dmmp_mpath_array_get.3       | 36 ++++++++++
 libdmmp/docs/man/dmmp_mpath_kdev_name_get.3   | 17 +++++
 libdmmp/docs/man/dmmp_mpath_name_get.3        | 18 +++++
 libdmmp/docs/man/dmmp_mpath_wwid_get.3        | 13 ++++
 libdmmp/docs/man/dmmp_path_array_get.3        | 25 +++++++
 libdmmp/docs/man/dmmp_path_blk_name_get.3     | 17 +++++
 libdmmp/docs/man/dmmp_path_group_array_get.3  | 27 ++++++++
 libdmmp/docs/man/dmmp_path_group_id_get.3     | 18 +++++
 .../docs/man/dmmp_path_group_priority_get.3   | 16 +++++
 .../docs/man/dmmp_path_group_selector_get.3   | 16 +++++
 libdmmp/docs/man/dmmp_path_group_status_get.3 | 23 +++++++
 libdmmp/docs/man/dmmp_path_group_status_str.3 | 26 ++++++++
 libdmmp/docs/man/dmmp_path_status_get.3       | 54 +++++++++++++++
 libdmmp/docs/man/dmmp_path_status_str.3       | 34 ++++++++++
 libdmmp/docs/man/dmmp_reconfig.3              | 27 ++++++++
 libdmmp/docs/man/dmmp_strerror.3              | 33 ++++++++++
 libdmmp/docs/{ => man}/libdmmp.h.3            |  0
 libmultipath/io_err_stat.c                    |  2 +-
 tests/Makefile                                |  1 +
 tests/devt.c                                  |  2 +-
 39 files changed, 797 insertions(+), 32 deletions(-)
 create mode 100644 .github/workflows/foreign.yaml
 create mode 100644 .github/workflows/native.yaml
 create mode 100644 libdmmp/docs/man/dmmp_context_free.3
 create mode 100644 libdmmp/docs/man/dmmp_context_log_func_set.3
 create mode 100644 libdmmp/docs/man/dmmp_context_log_priority_get.3
 create mode 100644 libdmmp/docs/man/dmmp_context_log_priority_set.3
 create mode 100644 libdmmp/docs/man/dmmp_context_new.3
 create mode 100644 libdmmp/docs/man/dmmp_context_timeout_get.3
 create mode 100644 libdmmp/docs/man/dmmp_context_timeout_set.3
 create mode 100644 libdmmp/docs/man/dmmp_context_userdata_get.3
 create mode 100644 libdmmp/docs/man/dmmp_context_userdata_set.3
 create mode 100644 libdmmp/docs/man/dmmp_flush_mpath.3
 create mode 100644 libdmmp/docs/man/dmmp_last_error_msg.3
 create mode 100644 libdmmp/docs/man/dmmp_log_priority_str.3
 create mode 100644 libdmmp/docs/man/dmmp_mpath_array_free.3
 create mode 100644 libdmmp/docs/man/dmmp_mpath_array_get.3
 create mode 100644 libdmmp/docs/man/dmmp_mpath_kdev_name_get.3
 create mode 100644 libdmmp/docs/man/dmmp_mpath_name_get.3
 create mode 100644 libdmmp/docs/man/dmmp_mpath_wwid_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_array_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_blk_name_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_group_array_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_group_id_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_group_priority_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_group_selector_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_group_status_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_group_status_str.3
 create mode 100644 libdmmp/docs/man/dmmp_path_status_get.3
 create mode 100644 libdmmp/docs/man/dmmp_path_status_str.3
 create mode 100644 libdmmp/docs/man/dmmp_reconfig.3
 create mode 100644 libdmmp/docs/man/dmmp_strerror.3
 rename libdmmp/docs/{ => man}/libdmmp.h.3 (100%)

-- 
2.30.1





More information about the dm-devel mailing list