Message ID | 20210326212944.3136-1-mwilck@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | multipath-tools: extended github CI | expand |
On Fri, Mar 26, 2021 at 10:29:37PM +0100, mwilck@suse.com wrote: > From: Martin Wilck <mwilck@suse.com> > > Hi Christophe, hi Ben, For the set Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com> > 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 -- dm-devel mailing list dm-devel@redhat.com https://listman.redhat.com/mailman/listinfo/dm-devel
From: Martin Wilck <mwilck@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%)