diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d2bb62cab19276bdd5692058bd694d6ef0a884a..2935765db91d138e46a803e4aaa83ba8b6cd1e98 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,8 @@ stages:
 
 before_script:
   - apt-get update --yes
-  - apt-get install --yes build-essential cmake graphviz python3-pyqt5 xvfb xdg-utils lcov
+  # - apt-get install --yes build-essential cmake graphviz python3-pyqt5 xvfb xdg-utils lcov
+  - apt-get install --yes graphviz python3-pyqt5 xvfb xdg-utils
   - python -m pip install --upgrade pip
   - python --version
   - pip install -r requirements.txt
@@ -123,6 +124,13 @@ run-doc-test:
     # Run linting on doc-strings
     - pip install black velin
     - velin . --check --black
+    - pip install ruff
+    - ruff b_asic --format=gitlab > ruff.json
+  artifacts:
+    name: "${CI_PROJECT_NAME}_code_quality"
+    when: always
+    reports:
+      codequality: ruff.json
 
 pages:
   variables:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index c85b596ac1caea31f45334bb872f5bd392e4b4b8..4aa7b14f63a505c077a5da061ce029caaae57b77 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -22,3 +22,8 @@ repos:
     rev: 0.0.11
     hooks:
     - id: velin
+-   repo: https://github.com/charliermarsh/ruff-pre-commit
+    # Ruff version.
+    rev: "v0.0.265"
+    hooks:
+      - id: ruff