diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5dc8fb4f64af1c0e7bc37f0b057b68a4591f273e..bda04d346bb52e4d5ab0a9fc8dbb29b4a3182628 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -30,17 +30,13 @@ typechecker:
 
 testsuite:
   stage: "Tests"
-  image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full
+  image: i10git.cs.fau.de:5005/pycodegen/pycodegen/nox
   needs: []
   tags:
     - docker
-  before_script:
-    - pip install "git+https://i10git.cs.fau.de/pycodegen/pystencils.git@v2.0-dev"
-    - pip install -e .[testsuite]
   script:
-    - pytest -v --cov=src/pystencilssfg --cov-report=term --cov-config=pyproject.toml
-    - coverage html
-    - coverage xml
+    - nox --session testsuite
+    - nox --session report_coverage
   coverage: '/TOTAL.*\s+(\d+%)$/'
   artifacts:
     when: always
@@ -54,14 +50,10 @@ testsuite:
 
 build-documentation:
   stage: "Documentation"
-  image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full
+  image: i10git.cs.fau.de:5005/pycodegen/pycodegen/nox
   needs: []
-  before_script:
-    - pip install "git+https://i10git.cs.fau.de/pycodegen/pystencils.git@v2.0-dev"
-    - pip install -e .[docs]
   script:
-    - cd docs
-    - make html
+    - nox --session docs
   tags:
     - docker
   artifacts:
diff --git a/noxfile.py b/noxfile.py
index 90ffeff4a8652af227f6e72822c717849aaca2a5..2efdf043346ade6aedb2cd946e108f3c633ae6f0 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -63,7 +63,7 @@ def testsuite(session: nox.Session):
     )
 
 
-@nox.session(tags=["report"])
+@nox.session(python="3.10", tags=["report"])
 def report_coverage(session: nox.Session):
     """Produce HTML and XML coverage reports"""
     session.install("coverage[toml]")
@@ -79,7 +79,7 @@ def docs(session: nox.Session):
     session.run("make", "html", external=True)
 
 
-@nox.session(default=False)
+@nox.session()
 def dev(session: nox.Session):
     """Set up the development environment at .venv"""