diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000000000000000000000000000000000000..690993b587eb9579a880990df077136354f52418
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,26 @@
+pipeline {
+    agent any
+    environment {
+        PATH = "/apps/java/latest/bin:/apps/node/node-v6.11.4-linux-x64/bin:$PATH"
+    }
+
+    stages {
+        stage('Show Environment') {
+            steps {
+                sh "env"
+                sh "node --version"
+                sh "npm --version"
+            }
+        }
+        stage('Install Dependencies') {
+            steps {
+                sh "npm install"
+            }
+        }
+        stage('Test') {
+            steps {
+                sh "npm test"
+            }
+        }
+    }
+}
diff --git a/README.md b/README.md
index b90ed97779ccca00de1f2b5f899a17a2e3cc5707..bd881c3df1ab523aca908d671cc22b517ceab080 100644
--- a/README.md
+++ b/README.md
@@ -67,18 +67,24 @@ Ensure you have all the dependencies installed via `npm install`, then run:
 npm test
 ```
 
-### Style Guide / Linting
+### CI
 
-This project uses [eslint](https://eslint.org) to enforce JavaScript coding style. To run the linter:
+> https://devexp.ci.corp.adobe.com:12001/blue/organizations/jenkins/jsonschema2md/pr
 
-```bash
-npm run lint
-```
+Continuous integration runs on the [Developer Experience's Jenkins instance](https://devexp.ci.corp.adobe.com:12001) under the [jsonschema2md job](https://devexp.ci.corp.adobe.com:12001/blue/organizations/jenkins/jsonschema2md/pr). All pull requests automatically trigger a job that runs the [tests](#tests) by executing the [`Jenkinsfile`](Jenkinsfile). 
 
 ### Code Coverage
 
 You can run `npm run cover` to get a code coverage report, that is, a sense of how much of the project's code is "covered" by the test suite.
 
+## Style Guide / Linting
+
+This project uses [eslint](https://eslint.org) to enforce JavaScript coding style. To run the linter:
+
+```bash
+npm run lint
+```
+
 ## TODOs
 
 * JSON Schema validation: