diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 847b0e0aff4130b5f391af897c00e59182720c74..1b9c67094030305bd9970a6be62702ebec6385df 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,6 +47,12 @@ test_docs:
             - build/sphinx
         expire_in: 1 week
 
+test_install:
+    stage: test
+    image: continuumio/miniconda3:latest
+    script:
+        - pip install .[all]
+
 pages:
     stage: deploy
     image: busybox
diff --git a/setup.py b/setup.py
index 092bcc7a2c647c60e2ab75dc679359f0f8d3b889..bf06da17f2fb7fa50196f22bae993373f1bfefa7 100644
--- a/setup.py
+++ b/setup.py
@@ -8,8 +8,6 @@ import shutil
 import subprocess
 from setuptools import setup, config
 
-import matplotlib as mpl
-
 
 # Read version from setup.py:
 version = config.read_configuration('setup.cfg')['metadata']['version']
@@ -25,6 +23,13 @@ with open(os.path.join(os.path.dirname(__file__), 'src', 'empyre', 'version.py')
                 '""""This file was automatically generated by `setup.py`"""\n' +
                 f'version = "{version}"\n' +
                 f'git_revision = "{git_rev}"\n')
+
+# Run setup (reads metadata & options from setup.cfg):
+print(R'running setup.py')
+setup()
+
+
+import matplotlib as mpl
 # Find matplotlib styles:
 BASE_LIBRARY_PATH = os.path.join(mpl.get_data_path(), 'stylelib')
 STYLE_PATH = os.path.join(os.getcwd(), 'mplstyles')
@@ -35,6 +40,3 @@ for style_path in style_files:
     _, fname = os.path.split(style_path)
     dest = os.path.join(BASE_LIBRARY_PATH, fname)
     shutil.copy(style_path, dest)
-# Run setup (reads metadata & options from setup.cfg):
-print(R'running setup.py')
-setup()