diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml
index f2400fab878870dbe4137a127d63e879c9a90e2f..5e22c96e1fea0035694c573c00c89e8b318954b7 100644
--- a/.github/workflows/basic.yml
+++ b/.github/workflows/basic.yml
@@ -152,6 +152,11 @@ jobs:
           cmake .. -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC -DARB_WITH_PYTHON=ON -DARB_VECTORIZE=${{ matrix.config.simd }} -DPython3_EXECUTABLE=`which python` -DARB_WITH_MPI=${{ matrix.config.mpi }} -DARB_USE_BUNDLED_LIBS=ON
           make -j4 tests examples pyarb html
           cd -
+      - name: Install arbor
+        run: |
+          cd build
+          sudo make install
+          cd -
       - name: Run unit tests
         run: |
           build/bin/unit
@@ -175,3 +180,5 @@ jobs:
         run:  mpirun -n 4 -oversubscribe python python/test/unit_distributed/runner.py -v2
       - name: Run Python examples
         run: scripts/run_python_examples.sh
+      - name: Build a catalogue
+        run: build-catalogue -v default mechanisms/default
diff --git a/scripts/build-catalogue.in b/scripts/build-catalogue.in
index 70c7fdfb61bbc3e4140e5f4d04d02dd40d3baece..d352a2edfbd7fc25e520ee35ead724f544f60c8c 100755
--- a/scripts/build-catalogue.in
+++ b/scripts/build-catalogue.in
@@ -108,8 +108,12 @@ with TemporaryDirectory() as tmp:
         fd.write(cmake)
     shutil.copy2(f'@ARB_INSTALL_DATADIR@/BuildModules.cmake', tmp)
     shutil.copy2(f'@ARB_INSTALL_DATADIR@/generate_catalogue', tmp)
-    sp.run('cmake ..', shell=True, check=True, capture_output=not verbose)
-    sp.run('make',     shell=True, check=True, capture_output=not verbose)
+    if verbose:
+        out, err = (None, None)
+    else:
+        out, err = (sp.DEVNULL, sp.DEVNULL)
+    sp.run('cmake ..', shell=True, check=True, stdout=out, stderr=err)
+    sp.run('make', shell=True, check=True, stdout=out, stderr=err)
     shutil.copy2(f'{name}-catalogue.so', pwd)
     if not quiet:
         print(f'Catalogue has been built and copied to {pwd}/{name}-catalogue.so')