diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2168ac66a7c58f233e3add7bb40a922a53150184..3f0c49c1eda403a64b34979fbf52a44492a36650 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,7 +3,8 @@
 
 workflow:
   rules:
-    - if: '$CI_MERGE_REQUEST_TITLE =~ /(?i)(^WIP.*)/ || $CI_MERGE_REQUEST_TITLE =~ /(?i)(^DRAFT.*)/'
+    # don't create a pipeline if its a commit pipeline, on a branch and that branch has open merge requests (bc we will get a MR build instead)
+    - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
       when: never
     - when: always
 
@@ -32,8 +33,6 @@ clang-format:
   stage: build
   needs: ["build-base"]
   image: idg_base:${CI_COMMIT_SHORT_SHA}
-  before_script:
-    - pip3 install clang-format==9.0.0
   script:
     - ./scripts/run-clang-format.sh
   rules:
@@ -84,7 +83,6 @@ idg-test:
   needs: ["build-base"]
   image: idg_base:${CI_COMMIT_SHORT_SHA}
   script:
-    - pip3 install gcovr
     - mkdir build
     - cd build
     - cmake .. -DCMAKE_CXX_FLAGS="-coverage" -DCMAKE_EXE_LINKER_FLAGS="-coverage" -DBUILD_TESTING=On
@@ -92,8 +90,9 @@ idg-test:
     - export LD_LIBRARY_PATH=$(pwd)/lib:$LD_LIBRARY_PATH
     - ctest -j8 --verbose -LE integration
     # Capture coverage
-    - gcovr -r .. -e '.*/tests/.*' -e '.*/CompilerIdCXX/.*' -e '.*/external/.*'
-    - gcovr -r .. -e '.*/tests/.*' -e '.*/CompilerIdCXX/.*' -e '.*/external/.*' --xml > coverage.xml
+    - gcovr -r .. -e '.*/tests/.*' -e '.*/CompilerIdCXX/.*' -e '.*/external/.*' --json -o run-unit.json
+    - gcovr --add-tracefile run-unit.json --xml > coverage.xml
+    - gcovr --add-tracefile run-unit.json
   rules:
     - when: on_success
   artifacts:
@@ -105,7 +104,6 @@ idg-integration-docker:
   image: idg_integration:${CI_COMMIT_SHORT_SHA}
   needs: ["build-integration"]
   before_script:
-    - pip3 install pytest pytest-lazy-fixture h5py
     - export HOME_DIR=$PWD
     # Install IDG
     - mkdir /opt/idg && mkdir build
diff --git a/docker/ubuntu_20_04_base b/docker/ubuntu_20_04_base
index 6f6fefd807bc979133739750dae20708c9718da2..aff83c27b7fe0386230f5d09a7fe6c65d5e1dac2 100644
--- a/docker/ubuntu_20_04_base
+++ b/docker/ubuntu_20_04_base
@@ -3,4 +3,5 @@ FROM ubuntu:20.04
 RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \
     apt-get install -y \
     libboost-all-dev g++ cmake libfftw3-dev liblapacke-dev \
-    python3 python3-pip
\ No newline at end of file
+    python3 python3-pip && \
+    pip3 install clang-format==9.0.0 gcovr
\ No newline at end of file
diff --git a/docker/ubuntu_20_04_integration b/docker/ubuntu_20_04_integration
index c429fc515eae17e822e6f7e894181be1956f881b..63e3cb5b142410dcecb206b40c010704bbba9843 100644
--- a/docker/ubuntu_20_04_integration
+++ b/docker/ubuntu_20_04_integration
@@ -36,4 +36,4 @@ RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \
     && tar xfz /WSRT_Measures.ztar \
     && rm /WSRT_Measures.ztar \
 # Install some python packages
-    && pip3 install astropy scipy
+    && pip3 install astropy scipy pytest pytest-lazy-fixture h5py