diff --git a/CHANGELOG.md b/CHANGELOG.md
index e084d98..d416f2e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+### 1.1.1
+
+#### Fixes
+- #184 Add automations ensure proper builds and deployments
+- #184 Fixes verbose flag
+
 ### 1.1.0
 
 #### Features
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Makefile
diff --git a/dist/index.js b/dist/index.js
index 462a66c..3677daa 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -2520,6 +2520,7 @@
 const request = __webpack_require__(335);
 
 let fail_ci;
+let verbose;
 try {
   const name = core.getInput("name");
   const token = core.getInput("token");
@@ -2529,9 +2530,12 @@
   const env_vars = core.getInput("env_vars");
   const dir = core.getInput("directory");
   const write_path = core.getInput("path_to_write_report");
-  const verbose = core.getInput("verbose");
+  const working_dir = core.getInput("working-directory");
+  const xcode_derived_data = core.getInput("xcode_derived_data");
+  const xcode_package = core.getInput("xcode_package");
 
   fail_ci = core.getInput("fail_ci_if_error").toLowerCase();
+  verbose = core.getInput("verbose").toLowerCase();
 
   if (
     fail_ci === "yes" ||
@@ -2545,6 +2549,18 @@
     fail_ci = false;
   }
 
+  if (
+    verbose === "yes" ||
+    verbose === "y" ||
+    verbose === "true" ||
+    verbose === "t" ||
+    verbose === "1"
+  ) {
+    verbose = true;
+  } else {
+    verbose = false;
+  }
+
   request({
     json: false,
     maxAttempts: 10,
@@ -2651,6 +2667,22 @@
           );
         }
 
+        if (working_dir) {
+          options.cwd = working_dir;
+        }
+
+        if (xcode_derived_data) {
+          execArgs.push(
+            "-D", `${xcode_derived_data}`
+          );
+        }
+
+        if (xcode_package) {
+          execArgs.push(
+            "-J", `${xcode_package}`
+          );
+        }
+
         exec.exec("bash", execArgs, options)
           .catch(err => {
             if (fail_ci) {
diff --git a/hooks/pre-commit b/hooks/pre-commit
new file mode 100755
index 0000000..ea68e88
--- /dev/null
+++ b/hooks/pre-commit
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+npm i --package-lock-only
+npm run build
+git add dist/index.js
diff --git a/index.js b/index.js
index 2aea6a8..a171233 100644
--- a/index.js
+++ b/index.js
@@ -4,6 +4,7 @@
 const request = require('requestretry');
 
 let fail_ci;
+let verbose;
 try {
   const name = core.getInput("name");
   const token = core.getInput("token");
@@ -13,12 +14,12 @@
   const env_vars = core.getInput("env_vars");
   const dir = core.getInput("directory");
   const write_path = core.getInput("path_to_write_report");
-  const verbose = core.getInput("verbose");
   const working_dir = core.getInput("working-directory");
   const xcode_derived_data = core.getInput("xcode_derived_data");
   const xcode_package = core.getInput("xcode_package");
 
   fail_ci = core.getInput("fail_ci_if_error").toLowerCase();
+  verbose = core.getInput("verbose").toLowerCase();
 
   if (
     fail_ci === "yes" ||
@@ -32,6 +33,18 @@
     fail_ci = false;
   }
 
+  if (
+    verbose === "yes" ||
+    verbose === "y" ||
+    verbose === "true" ||
+    verbose === "t" ||
+    verbose === "1"
+  ) {
+    verbose = true;
+  } else {
+    verbose = false;
+  }
+
   request({
     json: false,
     maxAttempts: 10,
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000..de83bb5
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+if ! [ -e .git ]; then
+    echo "Please run this from repo root directory"
+    exit 1
+fi
+
+cd .git/hooks
+for i in pre-commit; do
+    rm -fv $i
+    ln -sv ../../hooks/$i
+done
diff --git a/package-lock.json b/package-lock.json
index b8d442f..e84ff2c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "codecov-action",
-  "version": "1.0.15",
+  "version": "1.1.1",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
diff --git a/package.json b/package.json
index 874b944..e1466c1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "codecov-action",
-  "version": "1.0.16",
+  "version": "1.1.1",
   "description": "Upload coverage reports to Codecov from GitHub Actions",
   "main": "index.js",
   "scripts": {
