diff --git a/jenkins/static-checks.jpl b/jenkins/static-checks.jpl
new file mode 100644
index 0000000..c447e2d
--- /dev/null
+++ b/jenkins/static-checks.jpl
@@ -0,0 +1,50 @@
+#!/usr/bin/env groovy
+//-------------------------------------------------------------------------------
+// Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
+//
+// SPDX-License-Identifier: BSD-3-Clause
+//
+//-------------------------------------------------------------------------------
+
+@Library('trustedfirmware') _
+import org.trustedfirmware.Gerrit
+
+node("docker-amd64-bionic") {
+  stage("Init") {
+    cleanWs()
+    dir("trusted-firmware-m") {
+      checkout(
+        poll: false,
+        scm: [
+          $class: 'GitSCM',
+          branches: [[name: '$GERRIT_BRANCH']],
+          extensions: [[$class: 'BuildChooserSetting', buildChooser: [$class: 'GerritTriggerBuildChooser']]],
+          userRemoteConfigs: [[
+            credentialsId: 'GIT_SSH_KEY',
+            refspec: '$GERRIT_REFSPEC', url: '$CODE_REPO'
+          ]]
+        ])
+    }
+    dir("tf-m-ci-scripts") {
+      git url: '$CI_SCRIPTS_REPO', branch: '$CI_SCRIPTS_BRANCH', credentialsId: 'GIT_SSH_KEY'
+    }
+  }
+  stage("Check") {
+    def verify = 1
+    try {
+      sh """
+cd trusted-firmware-m
+IS_CONTINUOUS_INTEGRATION=1 ../tf-m-ci-scripts/run-static-checks.sh
+"""
+    } catch (Exception e) {
+      manager.buildFailure()
+      verify = -1
+    } finally {
+      g = new Gerrit()
+      g.verifyStatusInWorkspace(verify, 'static-checks', 'static')
+      def buildStatus = (verify == 1) ? 'Successful' : 'Failed'
+      //g.commentInWorkspace("Build checkpatch ${buildStatus}: ${env.RUN_DISPLAY_URL}")
+      cleanWs()
+    }
+  }
+}
