Skip to content

Commit

Permalink
add build
Browse files Browse the repository at this point in the history
  • Loading branch information
ribelo committed Jun 1, 2022
1 parent bfa1e08 commit 8c95de5
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 9 deletions.
82 changes: 82 additions & 0 deletions build/build.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
(ns build
(:require
[clojure.tools.build.api :as b]
[clojure.java.shell :as shell]
[clojure.string :as str]
[meander.epsilon :as m]
[deps-deploy.deps-deploy :as d]))

(def scm-url "git@github.com:ribelo/praxis.git")

(defn sha
[{:keys [dir path] :or {dir "."}}]
(-> {:command-args (cond-> ["git" "rev-parse" "HEAD"]
path (conj "--" path))
:dir (.getPath (b/resolve-path dir))
:out :capture}
b/process
:out
str/trim))

(defn git-branch-name
"Attempts to get the current branch name via the shell."
[]
(m/match (shell/sh "git" "rev-parse" "--abbrev-ref" "HEAD")
{:exit 0, :out ?out}
(str/trim ?out)

?result
(throw (ex-info "Unable to compute branch name" ?result))))

(def git-commit-count-start
"Starting SHA to count commits from."
"bfa1e08b6f943afe66dd6b638414d445ae786c35")

(defn git-branch-commit-count
"Attempts to get the current number of commits on the current branch
via the shell."
[]
(m/match (shell/sh "git" "rev-list" (str git-commit-count-start "...") "--count")
{:exit 0, :out ?out}
(str/trim ?out)

?result
(throw (ex-info "Unable to compute commit count" ?result))))

(def lib (symbol "com.github.ribelo" "praxis"))
(def basis (b/create-basis {:project "deps.edn"}))
(def version (format "0.1.%s" (git-branch-commit-count)))
(def class-dir "target/classes")
(def jar-file (format "target/%s-%s.jar" (git-branch-name) version))

(defn jar [_]
(b/delete {:path "target"})
(b/write-pom {:class-dir class-dir
:lib lib
:version version
:basis basis
:src-dirs ["src/main"]
:scm {:tag (sha nil)
:connection (str "scm:git:" scm-url)
:developerConnection (str "scm:git:" scm-url)
:url scm-url}})
(b/copy-dir {:src-dirs ["src/main"]
:target-dir class-dir})
(b/jar {:class-dir class-dir
:jar-file jar-file}))

(defn deploy [args]
(-> args
(assoc :artifact jar-file
:pom-file (str class-dir "/META-INF/maven/" (namespace lib) "/" (name lib) "/pom.xml"))
(d/deploy)))

(defn clojars [args]
(-> {:installer :remote :sign-releases? true}
(merge args)
(deploy)))

(defn install [args]
(-> {:installer :local}
(merge args)
(deploy)))
20 changes: 11 additions & 9 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{:paths ["src/main" "resources"]
:deps {missionary/missionary {:mvn/version "b.26"}
com.taoensso/timbre {:mvn/version "5.1.2"}
com.github.ribelo/fatum {:mvn/version "0.0.31"}}
:deps {missionary/missionary {:mvn/version "b.26"}
com.taoensso/timbre {:mvn/version "5.1.2"}
com.github.ribelo/fatum {:mvn/version "0.0.31"}}
:aliases
{:dev
{:extra-deps {nrepl/nrepl {:mvn/version "0.7.0"}
Expand All @@ -10,12 +10,14 @@

:build
{:extra-paths ["build"]
:extra-deps {io.github.clojure/tools.build {:git/tag "v0.1.9" :git/sha "6736c83"}
slipset/deps-deploy {:mvn/version "RELEASE"}}
:exec-fn build/jar}
:extra-deps {io.github.clojure/tools.build {:git/tag "v0.1.9" :git/sha "6736c83"}
meander/epsilon {:mvn/version "0.0.650"}
slipset/deps-deploy {:mvn/version "RELEASE"}}
:exec-fn build/jar}
:deploy
{:extra-paths ["build"]
:extra-deps {io.github.clojure/tools.build {:git/tag "v0.1.9" :git/sha "6736c83"}
slipset/deps-deploy {:mvn/version "RELEASE"}}
:exec-fn build/clojars}
:extra-deps {io.github.clojure/tools.build {:git/tag "v0.1.9" :git/sha "6736c83"}
meander/epsilon {:mvn/version "0.0.650"}
slipset/deps-deploy {:mvn/version "RELEASE"}}
:exec-fn build/clojars}
:cljs {:extra-deps {thheller/shadow-cljs {:mvn/version "2.16.6"}}}}}

0 comments on commit 8c95de5

Please sign in to comment.