Commit Diff


commit - 2957b0a4b3593e200978707de9b4481a72fb6a83
commit + a399554d9fc500de6dc94f8b7878170c2e37cb40
blob - 0fa37ac8be5938dd0fbe741f493f3776fbb3e8a8
blob + 1d93d3876f8831c1231e3fda277d5990f6244455
--- build.clj
+++ build.clj
@@ -1,11 +1,15 @@
 (ns build
-  (:require [clojure.tools.build.api :as b]))
+  (:require
+   [clojure.tools.build.api :as b]
+   [deps-deploy.deps-deploy :as d]))
 
+(def repo "github.com/omar-polo/gemini.git")
 (def lib 'com.omarpolo/gemini)
 (def version (format "0.1.0"))
 (def class-dir "target/classes")
 (def basis (b/create-basis {:project "deps.edn"}))
 (def jar-file (format "target/%s-%s.jar" (name lib) version))
+(def pom-file (format "%s/META-INF/maven/%s/pom.xml" class-dir lib))
 
 (defn clean [_]
   (b/delete {:path "target"}))
@@ -18,17 +22,29 @@
 
 (defn jar [_]
   (compile nil)
-  (let [repo "github.com/omar-polo/gemini.git"]
-    (b/write-pom {:class-dir class-dir
-                  :lib       lib
-                  :version   version
-                  :basis     basis
-                  :src-dirs  ["src"]
-                  :scm       {:connection          (str "scm:git:git://" repo)
-                              :developerConnection (str "scm:git:ssh://git@" repo)
-                              :tag                 version
-                              :url                 (str "https://" repo)}}))
+  (b/write-pom {:class-dir class-dir
+                :lib       lib
+                :version   version
+                :basis     basis
+                :src-dirs  ["src"]
+                :scm       {:connection          (str "scm:git:git://" repo)
+                            :developerConnection (str "scm:git:ssh://git@" repo)
+                            :tag                 version
+                            :url                 (str "https://" repo)}})
   (b/copy-dir {:src-dirs ["src"]
                :target-dir class-dir})
   (b/jar {:class-dir class-dir
           :jar-file jar-file}))
+
+;; NB: set CLOJARS_USERNAME and CLOJARS_PASSWORD
+(defn deploy [_]
+  (when-not (or (System/getenv "CLOJARS_USERNAME")
+                (System/getenv "CLOJARS_PASWORD"))
+    (throw (Exception. "Missing CLOJARS_USERNAME or PASSWORD!")))
+  (jar nil)
+  ;; deploy both locally *and* on clojars
+  (doseq [place [:local :remote]]
+    (d/deploy {:artifact       jar-file
+               :pom-file       pom-file
+               :installer      place
+               :sign-releases? true})))
blob - cd7784ac5aa074018fba1b8f2d8b0715713e41c0
blob + 87e011c5e4dc57eea3046809f5ffe7f6a10190ce
--- deps.edn
+++ deps.edn
@@ -2,5 +2,6 @@
 
  :aliases
  {:build {:deps {io.github.clojure/tools.build {:tag "v0.6.2"
-                                                :sha "7ef409b370312c8819c587aa648177331602fa44"}}
+                                                :sha "7ef409b370312c8819c587aa648177331602fa44"}
+                 slipset/deps-deploy {:mvn/version "0.2.0"}}
           :ns-default build}}}