                    (normalize options))]
       (merge options
              {:es (set-up-es (:es options))
-              :process (merge
-                        ;; Invariant: Jenkins passes it in through arguments
-                        {:scriptfile (first arguments)}
-                        (:process options))
+              :process (-> (:process options)
+                           ;; Invariant: Jenkins passes it in through arguments
+                           (assoc :scriptfile (first arguments))
+                           ;; Go ahead and resolve
+                           (update :cwd (comp str io/abspath-file)))
               :version {:string (version/version)
                         :hash (version/build)}}))))

(def opts
  [["-v" "--version" "Print version"]
   ["-c" "--config FILE" "Config file"]
   ["-d" "--cwd DIR" "Set CWD for the process"
    :default (System/getProperty "user.dir")]
   ["-j" "--job-name JOBNAME" (str "Job name: org,project,branch,etc "
                                   "also read from $JOB_NAME")
    :default (environ/env :job-name)]

  [{:keys [job-name] :as opts} :- {(s/required-key :job-name) s/Str
                                   s/Keyword s/Any}]
  (deep-merge-with deep-merge
                   config-file-defaults
                   (if (environ/env :dev)
                     {}
                     (let [sys (system-config)]
