diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 503ce57fcb9379c8d6041758873fbe18b85d60c4..16c3567537dc720cf8709bf0cd8fac3979c1e07e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,8 +1,10 @@
 stages:
     - format
+    - check
 
 variables:
     GIT_STRATEGY: clone
 
 include:
   - local: /.gitlab-ci/format.yml
+  - local: /.gitlab-ci/check.yml
diff --git a/.gitlab-ci/check.yml b/.gitlab-ci/check.yml
new file mode 100644
index 0000000000000000000000000000000000000000..040d944e4ddbb0343a3779180af9019101bacd08
--- /dev/null
+++ b/.gitlab-ci/check.yml
@@ -0,0 +1,11 @@
+.check-template:
+    stage: check
+    dependencies: []
+
+shellcheck:
+    extends:
+        - .check-template
+    script:
+        - .ci/check/shellcheck.sh
+    tags:
+        - ubuntu-24.04-amd64