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 @@ - - 4.0.0 - com.devops4solutions - LoginWebApp - war - 1 - LoginWebApp Maven Webapp - http://maven.apache.org - - - javax.servlet - servlet-api - 2.5 - - - mysql - mysql-connector-java - 5.1.30 - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - org.apache.maven.plugins - maven-war-plugin - 2.4 - - - org.apache.maven.plugins - maven-source-plugin - 2.1.2 - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - false - - - - - org.apache.maven.plugins - maven-war-plugin - - - false - - - - - - - - - false - - central - bintray - https://jcenter.bintray.com - - - - diff --git a/scripts/build b/scripts/build new file mode 100644 index 0000000..50ed19a --- /dev/null +++ b/scripts/build @@ -0,0 +1,37 @@ +#!/bin/bash +startBuild() +{ +#Create the docker image and validate it +ECR_REPO=740075994284.dkr.ecr.ap-south-1.amazonaws.com/ci-cd-using-docker +DOCKER_BUILD_TAG="$GIT_BRANCH"-"${BUILD_NUMBER}" +docker build -t "$ECR_REPO":"$DOCKER_BUILD_TAG" --pull=true . +if docker build -t "$ECR_REPO":"$DOCKER_BUILD_TAG" --pull=true . +then +echo "Docker build got success" +else +echo "Docker build was failed" +exit 1 +fi +#Get the Image ID and tag it with repo name +IMAGE_ID=$(docker images -q $ECR_REPO | awk "NR==1{print $1}") +echo "$IMAGE_ID" +docker tag "$IMAGE_ID" "$ECR_REPO":"latest" +docker inspect "$IMAGE_ID" +#Push the Image to the respective repo and validate it +aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin 740075994284.dkr.ecr.ap-south-1.amazonaws.com +docker push "$ECR_REPO":"$DOCKER_BUILD_TAG" && docker push "$ECR_REPO":"latest" +if docker push "$ECR_REPO":"$DOCKER_BUILD_TAG" && docker push "$ECR_REPO":"latest" +then +echo "Docker Push got success" +docker logout +else +echo "Docker Push was failed" +docker logout +exit 1 +fi +} + +if["$GITBRANCH" == "Text1"] +{ + startBuild +} \ No newline at end of file diff --git a/scripts/deploy b/scripts/deploy new file mode 100644 index 0000000..7c86e49 --- /dev/null +++ b/scripts/deploy @@ -0,0 +1,43 @@ +#!/bin/bash +startDeploy() +{ +# Create a new task definition for this build +sed -e "s;GIT_COMMIT;${IMAGE_VERSION};g" "${JSON_FILE}".json > "${JSON_FILE}"-new-"${BUILD_NUMBER}".json +sed -e "s;task_role;${TASK_ROLE};g" "${JSON_FILE}"-new-"${BUILD_NUMBER}".json > "${JSON_FILE}"-"${BUILD_NUMBER}".json +cat ${JSON_FILE}-${BUILD_NUMBER}.json +aws ecs register-task-definition --family ${TASK_FAMILY} --cli-input-json file://${JSON_FILE}-${BUILD_NUMBER}.json --region ap-south-1 +# Update the service with the new task definition and desired count +DESIRED_COUNT=$(aws ecs describe-services --cluster "${CLUSTER}" \ + --services "${SERVICE_NAME}" \ + --region ap-south-1 | grep -E "desiredCount" | tr "/" " " | awk '{print $2}' | sed 's/,$//') +echo "$DESIRED_COUNT" +aws ecs update-service --cluster "${CLUSTER}" \ + --service "${SERVICE_NAME}" \ + --desired-count "${RUNNING_COUNT}" \ + --task-definition "${TASK_FAMILY}" --force-new-deployment \ + --region ap-south-1 +TASK_REVISION=$(aws ecs describe-task-definition --task-definition "${TASK_FAMILY}" \ + --region ap-south-1 | grep -E "revision" | tr "/" " " | awk '{print $2}' | sed 's/"$//') +echo "Task_revision_no=${TASK_REVISION}" +# Jenkins Job wait until service is avaliable in cluster +aws ecs wait services-stable --cluster "${CLUSTER}" --services "${SERVICE_NAME}" --region ap-south-1 +if [ $? -eq 0 ]; then +echo "Build got deployed successfully" +else +echo "Build failed" +exit 1 +fi +rm -rf "${JSON_FILE}"-"${BUILD_NUMBER}".json +rm -rf "${JSON_FILE}"-new-"${BUILD_NUMBER}".json +} + +if [ "$GIT_BRANCH" == "Text1" ] +then +SERVICE_NAME="ci-cd-using-docker" +IMAGE_VERSION="${GIT_BRANCH}-${BUILD_NUMBER}" +TASK_FAMILY="ci-cd-using-docker" +CLUSTER="Ecs-fargate" +TASK_ROLE="fargate-ecs" +JSON_FILE="ci-cd-using-docker" +RUNNING_COUNT=1 +startDeploy diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 9f88c1f..0000000 --- a/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Archetype Created Web Application - diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp deleted file mode 100644 index ebd1ec0..0000000 --- a/src/main/webapp/index.jsp +++ /dev/null @@ -1,38 +0,0 @@ -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Example - - -
-
- - - - - - - - - - - - - - - - - - - - - - - -
Login Page
Username
Password
New User Register Here
-
-
- - \ No newline at end of file diff --git a/src/main/webapp/logout.jsp b/src/main/webapp/logout.jsp deleted file mode 100644 index d11cae2..0000000 --- a/src/main/webapp/logout.jsp +++ /dev/null @@ -1,5 +0,0 @@ -<% -session.setAttribute("userName", null); -session.invalidate(); -response.sendRedirect("index.jsp"); -%> \ No newline at end of file diff --git a/src/main/webapp/register.jsp b/src/main/webapp/register.jsp deleted file mode 100644 index 17e7d0e..0000000 --- a/src/main/webapp/register.jsp +++ /dev/null @@ -1,49 +0,0 @@ -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - Registration - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Enter Information Here
First Name
Last Name
Email
User Name
Password
Already registered!! Login Here
-
-
- \ No newline at end of file diff --git a/src/main/webapp/success.jsp b/src/main/webapp/success.jsp deleted file mode 100644 index 734c620..0000000 --- a/src/main/webapp/success.jsp +++ /dev/null @@ -1,2 +0,0 @@ -Registration is Successful. -Please Login Here Go to Login \ No newline at end of file diff --git a/src/main/webapp/userRegistration.jsp b/src/main/webapp/userRegistration.jsp deleted file mode 100644 index 77c8753..0000000 --- a/src/main/webapp/userRegistration.jsp +++ /dev/null @@ -1,20 +0,0 @@ -<%@ page import="java.sql.*"%> -<% - String userName = request.getParameter("userName"); - String password = request.getParameter("password"); - String firstName = request.getParameter("firstName"); - String lastName = request.getParameter("lastName"); - String email = request.getParameter("email"); - Class.forName("com.mysql.jdbc.Driver"); - Connection con = DriverManager.getConnection("jdbc:mysql://db:3306/testdb1", - "testuser", "root"); - Statement st = con.createStatement(); - int i = st.executeUpdate("insert into USER(first_name, last_name, email, username, password, regdate) values ('" + firstName + "','" - + lastName + "','" + email + "','" + userName + "','" + password + "', CURDATE())"); - if (i > 0) { - response.sendRedirect("welcome.jsp"); - - } else { - response.sendRedirect("index.jsp"); - } -%> diff --git a/src/main/webapp/welcome.jsp b/src/main/webapp/welcome.jsp deleted file mode 100644 index bbc3eca..0000000 --- a/src/main/webapp/welcome.jsp +++ /dev/null @@ -1,12 +0,0 @@ -<% - if ((session.getAttribute("userName") == null) || (session.getAttribute("userName") == "")) { -%> -You are not logged in
-Please Login -<%} else { -%> -Welcome <%=session.getAttribute("userid")%> -Log out -<% - } -%> \ No newline at end of file diff --git a/target/LoginWebApp-1.war b/target/LoginWebApp-1.war deleted file mode 100644 index 3ce6f1e..0000000 Binary files a/target/LoginWebApp-1.war and /dev/null differ diff --git a/target/LoginWebApp-1/WEB-INF/lib/mysql-connector-java-5.1.30.jar b/target/LoginWebApp-1/WEB-INF/lib/mysql-connector-java-5.1.30.jar deleted file mode 100644 index d147d1a..0000000 Binary files a/target/LoginWebApp-1/WEB-INF/lib/mysql-connector-java-5.1.30.jar and /dev/null differ diff --git a/target/LoginWebApp-1/WEB-INF/lib/servlet-api-2.5.jar b/target/LoginWebApp-1/WEB-INF/lib/servlet-api-2.5.jar deleted file mode 100644 index fb52493..0000000 Binary files a/target/LoginWebApp-1/WEB-INF/lib/servlet-api-2.5.jar and /dev/null differ diff --git a/target/LoginWebApp-1/WEB-INF/web.xml b/target/LoginWebApp-1/WEB-INF/web.xml deleted file mode 100644 index 9f88c1f..0000000 --- a/target/LoginWebApp-1/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Archetype Created Web Application - diff --git a/target/LoginWebApp-1/index.jsp b/target/LoginWebApp-1/index.jsp deleted file mode 100644 index ebd1ec0..0000000 --- a/target/LoginWebApp-1/index.jsp +++ /dev/null @@ -1,38 +0,0 @@ -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Example - - -
-
- - - - - - - - - - - - - - - - - - - - - - - -
Login Page
Username
Password
New User Register Here
-
-
- - \ No newline at end of file diff --git a/target/LoginWebApp-1/logout.jsp b/target/LoginWebApp-1/logout.jsp deleted file mode 100644 index d11cae2..0000000 --- a/target/LoginWebApp-1/logout.jsp +++ /dev/null @@ -1,5 +0,0 @@ -<% -session.setAttribute("userName", null); -session.invalidate(); -response.sendRedirect("index.jsp"); -%> \ No newline at end of file diff --git a/target/LoginWebApp-1/register.jsp b/target/LoginWebApp-1/register.jsp deleted file mode 100644 index 17e7d0e..0000000 --- a/target/LoginWebApp-1/register.jsp +++ /dev/null @@ -1,49 +0,0 @@ -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - Registration - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Enter Information Here
First Name
Last Name
Email
User Name
Password
Already registered!! Login Here
-
-
- \ No newline at end of file diff --git a/target/LoginWebApp-1/success.jsp b/target/LoginWebApp-1/success.jsp deleted file mode 100644 index 734c620..0000000 --- a/target/LoginWebApp-1/success.jsp +++ /dev/null @@ -1,2 +0,0 @@ -Registration is Successful. -Please Login Here Go to Login \ No newline at end of file diff --git a/target/LoginWebApp-1/userRegistration.jsp b/target/LoginWebApp-1/userRegistration.jsp deleted file mode 100644 index 77c8753..0000000 --- a/target/LoginWebApp-1/userRegistration.jsp +++ /dev/null @@ -1,20 +0,0 @@ -<%@ page import="java.sql.*"%> -<% - String userName = request.getParameter("userName"); - String password = request.getParameter("password"); - String firstName = request.getParameter("firstName"); - String lastName = request.getParameter("lastName"); - String email = request.getParameter("email"); - Class.forName("com.mysql.jdbc.Driver"); - Connection con = DriverManager.getConnection("jdbc:mysql://db:3306/testdb1", - "testuser", "root"); - Statement st = con.createStatement(); - int i = st.executeUpdate("insert into USER(first_name, last_name, email, username, password, regdate) values ('" + firstName + "','" - + lastName + "','" + email + "','" + userName + "','" + password + "', CURDATE())"); - if (i > 0) { - response.sendRedirect("welcome.jsp"); - - } else { - response.sendRedirect("index.jsp"); - } -%> diff --git a/target/LoginWebApp-1/welcome.jsp b/target/LoginWebApp-1/welcome.jsp deleted file mode 100644 index bbc3eca..0000000 --- a/target/LoginWebApp-1/welcome.jsp +++ /dev/null @@ -1,12 +0,0 @@ -<% - if ((session.getAttribute("userName") == null) || (session.getAttribute("userName") == "")) { -%> -You are not logged in
-Please Login -<%} else { -%> -Welcome <%=session.getAttribute("userid")%> -Log out -<% - } -%> \ No newline at end of file diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..2794ef1 --- /dev/null +++ b/test/test.js @@ -0,0 +1,7 @@ +var request = require('supertest'); +var app = require('../index.js'); +describe('GET /will', function() { + it('respond with hello world', function(done) { + request(app).get('/will').expect('{ "response": "Hello World" }', done); + }); +}); \ No newline at end of file