[libvirt PATCH v2 2/5] ci: Break off the integration_tests template into more templates

Erik Skultety posted 5 patches 1 month, 2 weeks ago
[libvirt PATCH v2 2/5] ci: Break off the integration_tests template into more templates
Posted by Erik Skultety 1 month, 2 weeks ago
There's quite a lot happening in the .integration_tests template
already even without adding upstream QEMU build into the mix.
Let's break the template into more pieces which can then reference
in the .integration_tests template when putting all the pieces back
together using YAML anchors.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 ci/integration-template.yml | 76 +++++++++++++++++++++++--------------
 1 file changed, 47 insertions(+), 29 deletions(-)

diff --git a/ci/integration-template.yml b/ci/integration-template.yml
index c4201df6db..195e9cfa5f 100644
--- a/ci/integration-template.yml
+++ b/ci/integration-template.yml
@@ -1,44 +1,62 @@
+
+
+.install-deps: &install-deps
+  - sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
+  - sudo pip3 install --prefix=/usr avocado-framework
+
+
+.enable-core-dumps: &enable-core-dumps
+  - sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
+  - sudo systemctl daemon-reexec # need to reexec systemd after changing config
+
+
+.enable-libvirt-debugging: &enable-libvirt-debugging
+  - source /etc/os-release  # in order to query the vendor-provided variables
+  - if test "$ID" = "centos" && test "$VERSION_ID" -lt 9 ||
+       test "$ID" = "fedora" && test "$VERSION_ID" -lt 35;
+    then
+      DAEMONS="libvirtd virtlogd virtlockd";
+    else
+      DAEMONS="virtproxyd virtqemud virtinterfaced virtsecretd virtstoraged virtnwfilterd virtnodedevd virtlogd virtlockd";
+    fi
+  - for daemon in $DAEMONS;
+    do
+      LOG_OUTPUTS="1:file:/var/log/libvirt/${daemon}.log";
+      LOG_FILTERS="3:remote 4:event 3:util.json 3:util.object 3:util.dbus 3:util.netlink 3:node_device 3:rpc 3:access 1:*";
+      sudo augtool set /files/etc/libvirt/${daemon}.conf/log_filters "$LOG_FILTERS" &>/dev/null;
+      sudo augtool set /files/etc/libvirt/${daemon}.conf/log_outputs "$LOG_OUTPUTS" &>/dev/null;
+      sudo systemctl --quiet stop ${daemon}.service;
+      sudo systemctl restart ${daemon}.socket;
+    done
+
+
+.collect-logs: &collect-logs
+  - mkdir logs
+  - test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
+  - sudo coredumpctl info --no-pager > logs/coredumpctl.txt
+  - sudo mv /var/log/libvirt logs/libvirt
+  - sudo chown -R $(whoami):$(whoami) logs
+    # rename all Avocado stderr/stdout logs to *.log so that GitLab's web UI doesn't mangle the MIME type
+  - find logs/avocado/ -type f ! -name "*.log" -exec
+      sh -c 'DIR=$(dirname {}); NAME=$(basename {}); mv $DIR/$NAME{,.log}' \;
+
+
 .integration_tests:
   stage: integration_tests
   before_script:
     - mkdir "$SCRATCH_DIR"
-    - sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
-    - sudo systemctl daemon-reexec # need to reexec systemd after changing config
-    - sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
-    - sudo pip3 install --prefix=/usr avocado-framework
-    - source /etc/os-release  # in order to query the vendor-provided variables
-    - if test "$ID" = "centos" && test "$VERSION_ID" -lt 9 ||
-         test "$ID" = "fedora" && test "$VERSION_ID" -lt 35;
-      then
-        DAEMONS="libvirtd virtlogd virtlockd";
-      else
-        DAEMONS="virtproxyd virtqemud virtinterfaced virtsecretd virtstoraged virtnwfilterd virtnodedevd virtlogd virtlockd";
-      fi
-    - for daemon in $DAEMONS;
-      do
-        LOG_OUTPUTS="1:file:/var/log/libvirt/${daemon}.log";
-        LOG_FILTERS="3:remote 4:event 3:util.json 3:util.object 3:util.dbus 3:util.netlink 3:node_device 3:rpc 3:access 1:*";
-        sudo augtool set /files/etc/libvirt/${daemon}.conf/log_filters "$LOG_FILTERS" &>/dev/null;
-        sudo augtool set /files/etc/libvirt/${daemon}.conf/log_outputs "$LOG_OUTPUTS" &>/dev/null;
-        sudo systemctl --quiet stop ${daemon}.service;
-        sudo systemctl restart ${daemon}.socket;
-      done
+    - *install-deps
+    - *enable-core-dumps
+    - *enable-libvirt-debugging
     - sudo virsh net-start default &>/dev/null || true;
   script:
-    - mkdir logs
     - cd "$SCRATCH_DIR"
     - git clone --depth 1 https://gitlab.com/libvirt/libvirt-tck.git
     - cd libvirt-tck
     - sudo avocado --config avocado.config run --job-results-dir "$SCRATCH_DIR"/avocado
   after_script:
     - test "$CI_JOB_STATUS" = "success" && exit 0;
-    - test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
-    - sudo coredumpctl info --no-pager > logs/coredumpctl.txt
-    - sudo mv /var/log/libvirt logs/libvirt
-    - sudo chown -R $(whoami):$(whoami) logs
-      # rename all Avocado stderr/stdout logs to *.log so that GitLab's web UI doesn't mangle the MIME type
-    - find logs/avocado/ -type f ! -name "*.log" -exec
-        sh -c 'DIR=$(dirname {}); NAME=$(basename {}); mv $DIR/$NAME{,.log}' \;
+    - *collect-logs
   variables:
     SCRATCH_DIR: "/tmp/scratch"
   artifacts:
-- 
2.34.3