diff --git a/gulp_tasks/misc.js b/gulp_tasks/misc.js
index befe6a0..d5bc9e3 100644
--- a/gulp_tasks/misc.js
+++ b/gulp_tasks/misc.js
@@ -15,14 +15,11 @@
  * limitations under the License.
  */
 
-
 const path = require('path');
 
 const gulp = require('gulp');
 const del = require('del');
 const filter = require('gulp-filter');
-const rename = require('gulp-rename');
-const replace = require('gulp-replace');
 
 const conf = require('../conf/gulp.conf');
 
@@ -43,14 +40,3 @@
     .pipe(fileFilter)
     .pipe(gulp.dest(conf.paths.dist));
 }
-
-function other() {
-  const fileFilter = filter(file => file.stat.isFile());
-
-  return gulp.src([
-    path.join(conf.paths.src, '/**/*'),
-    path.join(`!${conf.paths.src}`, '/**/*.{scss,ts,html}')
-  ])
-    .pipe(fileFilter)
-    .pipe(gulp.dest(conf.paths.dist));
-}
diff --git a/gulp_tasks/protractor.js b/gulp_tasks/protractor.js
new file mode 100644
index 0000000..0d0727b
--- /dev/null
+++ b/gulp_tasks/protractor.js
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const gulp = require('gulp');
+const gulpProtractorAngular = require('gulp-angular-protractor');
+
+const args = process.env.PT_ARGS ? process.env.PT_ARGS.split(' ') : [];
+const conf = process.env.PT_CONF || './conf/protractor.conf.jenkins.js'
+
+
+gulp.task('protractor', callback => {
+
+  gulp
+    .src(['./e2e/**/*.js'])
+    .pipe(gulpProtractorAngular({
+      configFile: conf,
+      debug: false,
+      autoStartStopServer: true,
+      verbose: false,
+      args: args
+    }))
+    .on('error', e => {
+      console.log(e);
+    })
+    .on('end', callback);
+});
