diff --git a/Jenkinsfile b/Jenkinsfile
index cfd7a25..3c4f3d7 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,46 +1,30 @@
-pipeline {
-    agent {
-        dockerfile {
-        }
+properties([
+    parameters([
+        string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'),
+        string(defaultValue: 'osm/osmclient', description: '', name: 'GERRIT_PROJECT'),
+        string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'),
+        string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'),
+        string(defaultValue: 'https://osm.etsi.org/gerrit', description: '', name: 'PROJECT_URL_PREFIX'),
+        booleanParam(defaultValue: false, description: '', name: 'TEST_INSTALL'),
+    ])
+])
+
+def devops_checkout() {
+    dir('devops') {
+        git url: "${PROJECT_URL_PREFIX}/osm/devops", branch: params.GERRIT_BRANCH
     }
-    stages {
-        stage("Checkout") {
-            steps {
-                checkout scm
-                sh '''
-                   groupadd -o -g $(id -g) -r jenkins
-                   useradd -o -u $(id -u) --create-home -r -g  jenkins jenkins
-                   '''
-            }
-        }
-        stage("Test") {
-            steps {
-                sh 'tox'
-            }
-        }
-        stage("Build") {
-            steps {
-                sh '''
-                    rm -rf deb_dist
-                    tox -e build
-                   '''
-                stash name: "deb-files", includes: "deb_dist/*.deb"
-            }
-        }
-        stage("Repo Component") {
-            steps {
-                unstash "deb-files"
-                sh '''
-                    rm -rf pool
-                    rm -rf dists
-                    mkdir -p pool/osmclient
-                    mv deb_dist/*.deb pool/osmclient/
-                    mkdir -p dists/unstable/osmclient/binary-amd64/
-                    apt-ftparchive packages pool/osmclient > dists/unstable/osmclient/binary-amd64/Packages
-                    gzip -9fk dists/unstable/osmclient/binary-amd64/Packages
-                    '''
-                archiveArtifacts artifacts: "dists/**,pool/osmclient/*.deb", fingerprint: true
-            }
-        }
-    }
+}
+
+node {
+    checkout scm
+    devops_checkout()
+
+    ci_stage_2 = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
+    ci_stage_2.ci_pipeline( 'osmclient',
+                           params.PROJECT_URL_PREFIX,
+                           params.GERRIT_PROJECT,
+                           params.GERRIT_BRANCH,
+                           params.GERRIT_REFSPEC,
+                           params.GERRIT_PATCHSET_REVISION,
+                           params.TEST_INSTALL)
 }
