diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3b66410
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "git.ignoreLimitWarning": true
+}
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index b1f35e6..547a55b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,19 @@
-FROM tomcat:latest
+FROM node:10
-LABEL maintainer="Nidhi Gupta"
+# Create app directory
+WORKDIR /usr/src/app
-ADD ./target/LoginWebApp-1.war /usr/local/tomcat/webapps/
+# Install app dependencies
+# A wildcard is used to ensure both package.json AND package-lock.json are copied
+# where available (npm@5+)
+COPY package*.json ./
-EXPOSE 8080
+RUN npm install
+# If you are building your code for production
+# RUN npm ci --only=production
-CMD ["catalina.sh", "run"]
+# Bundle app source
+COPY . .
+
+EXPOSE 80
+CMD [ "node", "index.js" ]
diff --git a/Jenkinsfile b/Jenkinsfile
index bdfd6ac..586cf9d 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,62 +1,17 @@
pipeline {
- agent any
-
- tools
- {
- maven "Maven"
+ agent any
+ stages {
+ stage('build') {
+ steps {
+ echo 'Building a docker image'
+ sh './scripts/build'
+ }
}
- stages {
- stage('checkout') {
- steps {
-
- git branch: 'master', url: 'https://github.com/devops4solutions/CI-CD-using-Docker.git'
-
- }
- }
- stage('Execute Maven') {
- steps {
-
- sh 'mvn package'
- }
- }
-
-
- stage('Docker Build and Tag') {
- steps {
-
- sh 'docker build -t samplewebapp:latest .'
- sh 'docker tag samplewebapp nikhilnidhi/samplewebapp:latest'
- //sh 'docker tag samplewebapp nikhilnidhi/samplewebapp:$BUILD_NUMBER'
-
- }
- }
-
- stage('Publish image to Docker Hub') {
-
- steps {
- withDockerRegistry([ credentialsId: "dockerHub", url: "" ]) {
- sh 'docker push nikhilnidhi/samplewebapp:latest'
- // sh 'docker push nikhilnidhi/samplewebapp:$BUILD_NUMBER'
- }
-
- }
- }
-
- stage('Run Docker container on Jenkins Agent') {
-
- steps
- {
- sh "docker run -d -p 8003:8080 nikhilnidhi/samplewebapp"
-
- }
- }
- stage('Run Docker container on remote hosts') {
-
- steps {
- sh "docker -H ssh://jenkins@172.31.28.25 run -d -p 8003:8080 nikhilnidhi/samplewebapp"
-
- }
- }
+ stage('deploy') {
+ steps {
+ echo 'Deployment is in progress'
+ sh './scripts/deploy'
+ }
}
- }
-
+ }
+}
\ No newline at end of file
diff --git a/ci-cd-using-docker.json b/ci-cd-using-docker.json
new file mode 100644
index 0000000..8f70669
--- /dev/null
+++ b/ci-cd-using-docker.json
@@ -0,0 +1,26 @@
+{
+ "family": "ci-cd-using-docker",
+ "taskRoleArn": "arn:aws:iam::740075994284:role/task_role",
+ "Taskexecutionrole": "ecsTaskExecutionRole",
+ "containerDefinitions": [
+ {
+ "name": "ci-cd-using-docker",
+ "image": "740075994284.dkr.ecr.ap-south-1.amazonaws.com/ci-cd-using-docker:GIT_COMMIT",
+ "cpu": 300,
+ "memory": 300,
+ "memoryReservation": 200,
+ "volumesFrom": [],
+ "portMappings": [
+ {
+ "hostPort": 0,
+ "containerPort": 80,
+ "protocol": "tcp"
+ }
+ ],
+ "environment": [],
+ "mountPoints": []
+ }
+ ]
+ }
+
+
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index c0c9670..0000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-version: '3.3'
-services:
- db:
- image: mysql:5.7
- volumes:
- - db_vol:/var/lib/mysql
- - ./mysql-dump:/docker-entrypoint-initdb.d
- environment:
- MYSQL_ROOT_PASSWORD: root
- MYSQL_DATABASE: testdb1
- MYSQL_USER: testuser
- MYSQL_PASSWORD: root
- ports:
- - 3306:3306
- phpmyadmin:
- depends_on:
- - db
- image: phpmyadmin/phpmyadmin
- ports:
- - '8081:80'
- environment:
- PMA_HOST: db
- MYSQL_ROOT_PASSWORD: root
- web:
- build:
- context: .
- depends_on:
- - db
- image: tomcat
- volumes:
- - ./target/LoginWebApp-1.war:/usr/local/tomcat/webapps/LoginWebApp-1.war
- ports:
- - '8082:8080'
- environment:
- MYSQL_ROOT_PASSWORD: root
- MYSQL_DATABASE: testdb1
- MYSQL_USER: testuser
- MYSQL_PASSWORD: root
-volumes:
- db_vol:
diff --git a/docker-compose_mysql.yml b/docker-compose_mysql.yml
deleted file mode 100644
index d4e47e5..0000000
--- a/docker-compose_mysql.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-version: '3.3'
-services:
- db:
- image: mysql:5.7
- volumes:
- - db_data1:/var/lib/mysql
- environment:
- MYSQL_ROOT_PASSWORD: root
- MYSQL_DATABASE: testdb1
- MYSQL_USER: testuser
- MYSQL_PASSWORD: root
- ports:
- - 3306:3306
-volumes:
- db_data1:
- name: db_data1
diff --git a/docker-compose_mysql_phpMyAdmin.yml b/docker-compose_mysql_phpMyAdmin.yml
deleted file mode 100644
index a8fe640..0000000
--- a/docker-compose_mysql_phpMyAdmin.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-version: '3.3'
-services:
- db:
- image: mysql:5.7
- volumes:
- - /opt/test:/var/lib/mysql
- environment:
- MYSQL_ROOT_PASSWORD: root
- MYSQL_DATABASE: testdb1
- MYSQL_USER: testuser
- MYSQL_PASSWORD: root
- ports:
- - 3306:3306
- phpmyadmin:
- depends_on:
- - db
- image: phpmyadmin/phpmyadmin
- ports:
- - '8081:80'
- environment:
- PMA_HOST: db
- MYSQL_ROOT_PASSWORD: root
diff --git a/docker-compose_tomcat.yml b/docker-compose_tomcat.yml
deleted file mode 100644
index 57f1e9a..0000000
--- a/docker-compose_tomcat.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: '3'
-services:
- web:
- image: tomcat
- ports:
- - "8081:8080"
- volumes:
- - ./index.html:/usr/local/tomcat/webapps/test/index.html
diff --git a/index.html b/index.html
deleted file mode 100644
index 1ec7c4c..0000000
--- a/index.html
+++ /dev/null
@@ -1 +0,0 @@
-This is a index page
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..f18728f
--- /dev/null
+++ b/index.js
@@ -0,0 +1,10 @@
+var express = require('express');
+var app = express();
+app.get('/will', function (req, res) {
+ res.send('{ "response": "Hello World" }');
+});
+app.get('/ready', function (req, res) {
+ res.send('{ "response": "It works!" }');
+});
+app.listen(process.env.PORT || 3000);
+module.exports = app;
diff --git a/mysql-dump/USER.sql b/mysql-dump/USER.sql
deleted file mode 100644
index 27bdde1..0000000
--- a/mysql-dump/USER.sql
+++ /dev/null
@@ -1,41 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 5.0.2
--- https://www.phpmyadmin.net/
---
--- Host: db
--- Generation Time: Sep 12, 2020 at 11:53 PM
--- Server version: 5.7.31
--- PHP Version: 7.4.9
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-START TRANSACTION;
-SET time_zone = "+00:00";
-
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8mb4 */;
-
---
--- Database: `testdb1`
---
-
--- --------------------------------------------------------
-
---
--- Table structure for table `USER`
---
-
-CREATE TABLE `USER` (
- `first_name` varchar(20) NOT NULL,
- `last_name` varchar(20) NOT NULL,
- `email` varchar(20) NOT NULL,
- `username` varchar(20) NOT NULL,
- `password` varchar(20) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-COMMIT;
-
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..30f38a7
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,844 @@
+{
+ "name": "node-app",
+ "version": "0.0.1",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "accepts": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz",
+ "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=",
+ "requires": {
+ "mime-types": "~1.0.0",
+ "negotiator": "0.4.7"
+ }
+ },
+ "any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
+ },
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "base64-url": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz",
+ "integrity": "sha1-+LbFN/CaT8WMmcuG4LDpxhRhog8="
+ },
+ "basic-auth-connect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz",
+ "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI="
+ },
+ "batch": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz",
+ "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I="
+ },
+ "body-parser": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.4.3.tgz",
+ "integrity": "sha1-RyeVLP9K8Hc+76SyJsL0Ei9eI00=",
+ "requires": {
+ "bytes": "1.0.0",
+ "depd": "0.3.0",
+ "iconv-lite": "0.4.3",
+ "media-typer": "0.2.0",
+ "qs": "0.6.6",
+ "raw-body": "1.2.2",
+ "type-is": "1.3.1"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz",
+ "integrity": "sha1-u1RRnpXRB8vSQA520MqxRnM22SE="
+ },
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
+ },
+ "combined-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+ "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "0.0.5"
+ }
+ },
+ "commander": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz",
+ "integrity": "sha1-io8w7GcKb91kr1LxkUuQfXnq1bU=",
+ "requires": {
+ "keypress": "0.1.x"
+ }
+ },
+ "component-emitter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
+ "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
+ "dev": true
+ },
+ "compressible": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz",
+ "integrity": "sha1-I7ceqQ6mxqZiiXAakYGCwk0HKe8="
+ },
+ "compression": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.0.11.tgz",
+ "integrity": "sha1-aXAM8e6JY0VDVqwZKm5ekeIyv/s=",
+ "requires": {
+ "accepts": "~1.0.7",
+ "bytes": "1.0.0",
+ "compressible": "~1.1.1",
+ "debug": "1.0.4",
+ "on-headers": "~1.0.0",
+ "vary": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
+ "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
+ "requires": {
+ "ms": "0.6.2"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "vary": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz",
+ "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA="
+ }
+ }
+ },
+ "connect": {
+ "version": "2.21.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-2.21.0.tgz",
+ "integrity": "sha1-qdYY+WEXPgLB2PITEICilfj/I3s=",
+ "requires": {
+ "basic-auth-connect": "1.0.0",
+ "body-parser": "1.4.3",
+ "bytes": "1.0.0",
+ "compression": "~1.0.8",
+ "connect-timeout": "1.1.1",
+ "cookie": "0.1.2",
+ "cookie-parser": "1.3.1",
+ "cookie-signature": "1.0.3",
+ "csurf": "1.2.2",
+ "debug": "1.0.2",
+ "depd": "0.3.0",
+ "errorhandler": "1.1.1",
+ "express-session": "~1.5.0",
+ "finalhandler": "0.0.2",
+ "fresh": "0.2.2",
+ "media-typer": "0.2.0",
+ "method-override": "2.0.2",
+ "morgan": "1.1.1",
+ "multiparty": "3.2.9",
+ "on-headers": "0.0.0",
+ "parseurl": "1.0.1",
+ "pause": "0.0.1",
+ "qs": "0.6.6",
+ "response-time": "2.0.0",
+ "serve-favicon": "2.0.1",
+ "serve-index": "~1.1.3",
+ "serve-static": "1.2.3",
+ "type-is": "1.3.1",
+ "vhost": "2.0.0"
+ }
+ },
+ "connect-timeout": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.1.1.tgz",
+ "integrity": "sha1-bH4xyY8Kxo620TBfZ/IfWm6Q/QQ=",
+ "requires": {
+ "debug": "1.0.2",
+ "on-headers": "0.0.0"
+ }
+ },
+ "cookie": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz",
+ "integrity": "sha1-cv7D0k5Io0Mgc9kMEmQgBQYQBLE="
+ },
+ "cookie-parser": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.1.tgz",
+ "integrity": "sha1-ML/CkGoESJ1ZvLnjL5DbCOBLtR4=",
+ "requires": {
+ "cookie": "0.1.2",
+ "cookie-signature": "1.0.3"
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz",
+ "integrity": "sha1-kc2ZfMUftkFZVzjGnNoCAyj1D/k="
+ },
+ "cookiejar": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.2.tgz",
+ "integrity": "sha1-YdMini2iDIWQMiM1ApWKm331gkk=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "csrf-tokens": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-2.0.0.tgz",
+ "integrity": "sha1-yCEAP7i2rRe8l31v0ahL7cPtYZs=",
+ "requires": {
+ "base64-url": "1",
+ "rndm": "1",
+ "scmp": "~0.0.3",
+ "uid-safe": "1"
+ }
+ },
+ "csurf": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.2.2.tgz",
+ "integrity": "sha1-Lqny0/LWex4iUykOZ2tiGV3Ld1Y=",
+ "requires": {
+ "csrf-tokens": "~2.0.0"
+ }
+ },
+ "debug": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.2.tgz",
+ "integrity": "sha1-OElZHBDM5khHbDx8Li40FttZY8Q=",
+ "requires": {
+ "ms": "0.6.2"
+ }
+ },
+ "delayed-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+ "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=",
+ "dev": true
+ },
+ "depd": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-0.3.0.tgz",
+ "integrity": "sha1-Ecm8KOQlMl+9iziUC+/2n6UyaIM="
+ },
+ "diff": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz",
+ "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=",
+ "dev": true
+ },
+ "ee-first": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.3.tgz",
+ "integrity": "sha1-bJjECJq+y1p7hcGsRJqmA9Oz2r4="
+ },
+ "errorhandler": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz",
+ "integrity": "sha1-GN79Q22Mou/gotiGxcTW7m121pE=",
+ "requires": {
+ "accepts": "~1.0.4",
+ "escape-html": "1.0.1"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz",
+ "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A="
+ },
+ "express": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/express/-/express-3.12.0.tgz",
+ "integrity": "sha1-jwDJvvb00Yb0pIGtgxhE3X1zM24=",
+ "requires": {
+ "buffer-crc32": "0.2.3",
+ "commander": "1.3.2",
+ "connect": "2.21.0",
+ "cookie": "0.1.2",
+ "cookie-signature": "1.0.3",
+ "debug": "1.0.2",
+ "depd": "0.3.0",
+ "escape-html": "1.0.1",
+ "fresh": "0.2.2",
+ "media-typer": "0.2.0",
+ "merge-descriptors": "0.0.2",
+ "methods": "1.0.1",
+ "mkdirp": "0.5.0",
+ "parseurl": "1.0.1",
+ "proxy-addr": "1.0.1",
+ "range-parser": "1.0.0",
+ "send": "0.4.3",
+ "vary": "0.1.0"
+ }
+ },
+ "express-session": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.5.2.tgz",
+ "integrity": "sha1-56Tr74ob/8EyMt0J/mq18DMeMw8=",
+ "requires": {
+ "buffer-crc32": "0.2.3",
+ "cookie": "0.1.2",
+ "cookie-signature": "1.0.4",
+ "debug": "1.0.2",
+ "depd": "0.3.0",
+ "on-headers": "0.0.0",
+ "uid-safe": "1.0.1",
+ "utils-merge": "1.0.0"
+ },
+ "dependencies": {
+ "cookie-signature": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz",
+ "integrity": "sha1-Dt0iKG46ERuaKnDbNj6SXoZ/aso="
+ },
+ "uid-safe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz",
+ "integrity": "sha1-W9FIRgouhPVPGT/SA1LIw9feasg=",
+ "requires": {
+ "base64-url": "1",
+ "mz": "1"
+ }
+ }
+ }
+ },
+ "extend": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz",
+ "integrity": "sha1-oPX9bPyDpf5J72mNYOyKYk3UV2w=",
+ "dev": true
+ },
+ "finalhandler": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.0.2.tgz",
+ "integrity": "sha1-BgPYde6H1WeiZmkoFcyK1E/M7to=",
+ "requires": {
+ "debug": "1.0.2",
+ "escape-html": "1.0.1"
+ }
+ },
+ "finished": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/finished/-/finished-1.2.2.tgz",
+ "integrity": "sha1-QWCOr639ZWg7RqEiC8Sx7D2u3Ng=",
+ "requires": {
+ "ee-first": "1.0.3"
+ }
+ },
+ "form-data": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.2.tgz",
+ "integrity": "sha1-EUPCE1eRGnjdeROxibS6tdXVdEU=",
+ "dev": true,
+ "requires": {
+ "async": "~0.2.9",
+ "combined-stream": "~0.0.4",
+ "mime": "~1.2.11"
+ }
+ },
+ "formidable": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz",
+ "integrity": "sha1-Kz9MQRy7X91pXESEPiojUUpDIxo=",
+ "dev": true
+ },
+ "fresh": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
+ "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc="
+ },
+ "glob": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
+ "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~2.0.0",
+ "inherits": "2",
+ "minimatch": "~0.2.11"
+ }
+ },
+ "graceful-fs": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
+ "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz",
+ "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.3.tgz",
+ "integrity": "sha1-nniHeTt2nMaV6yLSVGpP0tebeh4="
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ipaddr.js": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz",
+ "integrity": "sha1-ah/T2FT1ACllw017vNm0qNSwRn4="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "jade": {
+ "version": "0.26.3",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+ "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "mkdirp": "0.3.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "dev": true
+ }
+ }
+ },
+ "keypress": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz",
+ "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo="
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "media-typer": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz",
+ "integrity": "sha1-2KBlITrf6qLnYyGitt2jb/YzWYQ="
+ },
+ "merge-descriptors": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz",
+ "integrity": "sha1-w2pSp4FDdRPFcnXzndnTF1FKyMc="
+ },
+ "method-override": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.0.2.tgz",
+ "integrity": "sha1-AFMSeMeXiWQL8n6X4mo6Wh98ynM=",
+ "requires": {
+ "methods": "1.0.1",
+ "parseurl": "1.0.1",
+ "vary": "0.1.0"
+ }
+ },
+ "methods": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz",
+ "integrity": "sha1-dbyRlD3/19oDfPPusO1zoAN80Us="
+ },
+ "mime": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+ "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
+ },
+ "mime-types": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.0.tgz",
+ "integrity": "sha1-antKavLn2S+Xr+A/BHx4AejwAdI="
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "mkdirp": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mocha": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz",
+ "integrity": "sha1-80ODLZ/gx9l8ZPxwRI9RNt+f7Vs=",
+ "dev": true,
+ "requires": {
+ "commander": "2.0.0",
+ "debug": "*",
+ "diff": "1.0.7",
+ "glob": "3.2.3",
+ "growl": "1.7.x",
+ "jade": "0.26.3",
+ "mkdirp": "0.3.5"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
+ "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+ "dev": true
+ }
+ }
+ },
+ "morgan": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.1.1.tgz",
+ "integrity": "sha1-zeRdLoB+vMQ5dFhG6oA5LmkJgUY=",
+ "requires": {
+ "bytes": "1.0.0"
+ }
+ },
+ "ms": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
+ "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw="
+ },
+ "multiparty": {
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.2.9.tgz",
+ "integrity": "sha1-xzNz6pwBLnd2zlvEDJNiZLa6LB4=",
+ "requires": {
+ "readable-stream": "~1.1.9",
+ "stream-counter": "~0.2.0"
+ }
+ },
+ "mz": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-1.3.0.tgz",
+ "integrity": "sha1-BvCT/dmVagbTfhsegTROJ0eMQvA=",
+ "requires": {
+ "native-or-bluebird": "1",
+ "thenify": "3",
+ "thenify-all": "1"
+ }
+ },
+ "native-or-bluebird": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz",
+ "integrity": "sha1-OSHhECMtHreQ89rGG7NwUxx9NW4="
+ },
+ "negotiator": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz",
+ "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg="
+ },
+ "on-headers": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-0.0.0.tgz",
+ "integrity": "sha1-7igX+DRDJXhc2cLfKyQrvBfK9MQ="
+ },
+ "parseurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz",
+ "integrity": "sha1-Llfc5u/dN8NRhwEDCUTCK/OIt7Q="
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ },
+ "proxy-addr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz",
+ "integrity": "sha1-x8Vm1etOP61n7rnHfFVYzMObiKg=",
+ "requires": {
+ "ipaddr.js": "0.1.2"
+ }
+ },
+ "qs": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
+ "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
+ },
+ "range-parser": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz",
+ "integrity": "sha1-pLJkz+C+XONqvjdlrJwqJIdG28A="
+ },
+ "raw-body": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.2.2.tgz",
+ "integrity": "sha1-DGjh7ijP7X26SCIjSuxgeEYcvB8=",
+ "requires": {
+ "bytes": "1",
+ "iconv-lite": "0.4.3"
+ }
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "reduce-component": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz",
+ "integrity": "sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo=",
+ "dev": true
+ },
+ "response-time": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.0.0.tgz",
+ "integrity": "sha1-Zcs5/VDeL0/9vdKF8YVZZr1vyzY=",
+ "requires": {
+ "on-headers": "0.0.0"
+ }
+ },
+ "rndm": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz",
+ "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w="
+ },
+ "scmp": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz",
+ "integrity": "sha1-NkjfLXKUZB5/eGc//CloHZutkHM="
+ },
+ "send": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.4.3.tgz",
+ "integrity": "sha1-lieyO3cH+/Y3ODHKxXkzMLWUtkA=",
+ "requires": {
+ "debug": "1.0.2",
+ "escape-html": "1.0.1",
+ "finished": "1.2.2",
+ "fresh": "0.2.2",
+ "mime": "1.2.11",
+ "range-parser": "~1.0.0"
+ }
+ },
+ "serve-favicon": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz",
+ "integrity": "sha1-SCaXXZ8XPKOkFY6WmBYfdd7Hr+w=",
+ "requires": {
+ "fresh": "0.2.2"
+ }
+ },
+ "serve-index": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz",
+ "integrity": "sha1-t1gxj+eBYoOD9mrIDdRHcS6neB8=",
+ "requires": {
+ "accepts": "~1.0.7",
+ "batch": "0.5.1",
+ "parseurl": "~1.3.0"
+ },
+ "dependencies": {
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.2.3.tgz",
+ "integrity": "sha1-k87Lw0Dweey4WJKB0dwxwmwM0Vg=",
+ "requires": {
+ "escape-html": "1.0.1",
+ "parseurl": "1.0.1",
+ "send": "0.4.3"
+ }
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "stream-counter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz",
+ "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=",
+ "requires": {
+ "readable-stream": "~1.1.8"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "superagent": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-0.18.0.tgz",
+ "integrity": "sha1-nUN1o64sT71V/SDVsSokcNL8j2I=",
+ "dev": true,
+ "requires": {
+ "component-emitter": "1.1.2",
+ "cookiejar": "1.3.2",
+ "debug": "~0.7.2",
+ "extend": "~1.2.1",
+ "form-data": "0.1.2",
+ "formidable": "1.0.14",
+ "methods": "0.0.1",
+ "mime": "1.2.5",
+ "qs": "0.6.6",
+ "readable-stream": "1.0.27-1",
+ "reduce-component": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
+ "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
+ "dev": true
+ },
+ "methods": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-0.0.1.tgz",
+ "integrity": "sha1-J3yQ+L7zlwlkWoNxxRw7bGSOBow=",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.5.tgz",
+ "integrity": "sha1-nu0HMCKov14WyFZsaGe4gyv7+hM=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.27-1",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz",
+ "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "supertest": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-0.13.0.tgz",
+ "integrity": "sha1-SJK6/ZvqqbvMlf1anwSUmu8c4G8=",
+ "dev": true,
+ "requires": {
+ "methods": "1.0.0",
+ "superagent": "0.18.0"
+ },
+ "dependencies": {
+ "methods": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.0.0.tgz",
+ "integrity": "sha1-mnPYY3XfzvJu9hyj5Lii4lOKgOM=",
+ "dev": true
+ }
+ }
+ },
+ "thenify": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
+ "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
+ "requires": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
+ "requires": {
+ "thenify": ">= 3.1.0 < 4"
+ }
+ },
+ "type-is": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.3.1.tgz",
+ "integrity": "sha1-pnibWlITgomt4e+PbZ8odP/XC2s=",
+ "requires": {
+ "media-typer": "0.2.0",
+ "mime-types": "1.0.0"
+ }
+ },
+ "uid-safe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz",
+ "integrity": "sha1-WNbF2r+N+9jVKDSDmAbAP9YUMjI=",
+ "requires": {
+ "base64-url": "1.2.1",
+ "native-or-bluebird": "~1.1.2"
+ },
+ "dependencies": {
+ "base64-url": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz",
+ "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg="
+ }
+ }
+ },
+ "utils-merge": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
+ "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
+ },
+ "vary": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-0.1.0.tgz",
+ "integrity": "sha1-3wlFiZ6TwMxb0YzIMh2dIedPYXY="
+ },
+ "vhost": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz",
+ "integrity": "sha1-HiZ3C9D86GxAlFWR5vKExokXkeI="
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d2d416b
--- /dev/null
+++ b/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "node-app",
+ "description": "CI/CD jenkins test app",
+ "version": "0.0.1",
+ "private": true,
+ "dependencies": {
+ "express": "3.12.0"
+ },
+ "devDependencies": {
+ "mocha": "1.20.1",
+ "supertest": "0.13.0"
+ },
+ "scripts": {
+ "start": "node index.js",
+ "test": "./node_modules/.bin/mocha ./test/test.js"
+ }
+ }
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index eceb508..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-