From: Kefu Chai Date: Fri, 19 Mar 2021 02:32:16 +0000 (+0800) Subject: test: run promtool test without docker on ubuntu/focal X-Git-Tag: v15.2.13~10^2~3^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3ad72a522b947809646c0d9f771e291a80acfe2b;p=ceph.git test: run promtool test without docker on ubuntu/focal before this change, we use docker for running promtools offered by a docker image, but this is not efficient, and quite a few developers do not want to use docker for running "make check". this change was introduced by #39246, the reason was that, in Ceph's CI process, we are using Ubuntu/Bionic for running "make check" jobs, but prometheus packaged by Bionic does not offer the "test rules" command. so, to address problem, we are using "dnanexus/promtool:2.9.2" docker image for verifying monitoring/prometheus/alerts/test_alerts.yml. after this change, we use prometheus packaged by debian derivatives instead of pulling a docker image. * debian/control: add prometheus as a "make check" dependency * install-deps.sh: partially revert 53a5816deda0874a3a37e131e9bc22d88bb2a588, as we don't need to pull docker or start docker service for using promtool anymore. * cmake: check if promtool is capable of running "test rules" command, bail out if it is not. see also: https://tracker.ceph.com/issues/49653 Signed-off-by: Kefu Chai (cherry picked from commit f381aa8bf0e175940153975fa1534ef0559ecadd) --- diff --git a/debian/control b/debian/control index e33c41a197b..397e3a09d5e 100644 --- a/debian/control +++ b/debian/control @@ -68,6 +68,7 @@ Build-Depends: cmake (>= 3.5), parted, patch, pkg-config, +# Make-Check prometheus, # Crimson protobuf-compiler, python3-all-dev, python3-cherrypy3, diff --git a/install-deps.sh b/install-deps.sh index 3b79e7dde7c..24c198b40a0 100755 --- a/install-deps.sh +++ b/install-deps.sh @@ -294,9 +294,6 @@ else case "$ID" in debian|ubuntu|devuan) echo "Using apt-get to install dependencies" - $SUDO apt install -y docker.io - $SUDO systemctl start docker - $SUDO systemctl enable docker $SUDO apt-get install -y devscripts equivs $SUDO apt-get install -y dpkg-dev case "$VERSION" in @@ -481,7 +478,6 @@ function preload_wheels_for_tox() { mv $wip_wheelhouse wheelhouse md5sum $require_files $constraint_files > $md5 fi - popd > /dev/null } diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 38196b31dc2..3ae4120bdc9 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -532,7 +532,23 @@ add_ceph_test(run-cli-tests ${CMAKE_CURRENT_SOURCE_DIR}/run-cli-tests) add_ceph_test(smoke.sh ${CMAKE_CURRENT_SOURCE_DIR}/smoke.sh) -add_ceph_test(run-promtool-unittests.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-promtool-unittests.sh) +find_program(PROMTOOL_EXECUTABLE promtool) +if(PROMTOOL_EXECUTABLE) + execute_process( + COMMAND ${PROMTOOL_EXECUTABLE} test rules /dev/null + RESULT_VARIABLE rc + OUTPUT_QUIET) + if(NOT rc) + add_ceph_test(run-promtool-unittests + ${PROMTOOL_EXECUTABLE} test rules ${CMAKE_SOURCE_DIR}/monitoring/prometheus/alerts/test_alerts.yml) + else() + message(WARNING "'${PROMTOOL_EXECUTABLE} test rules' does not work, " + "please use a newer prometheus") + endif() +else() + add_ceph_test(run-promtool-unittests + {CMAKE_CURRENT_SOURCE_DIR}/run-promtool-unittests.sh) +endif() set_property( TEST ${tox_tests}