burp-clj-montoya/build.clj
2023-05-30 11:35:09 -04:00

48 lines
1.5 KiB
Clojure

(ns build
(:refer-clojure :exclude [test])
(:require [clojure.tools.build.api :as b]))
(def lib 'net.clojars.subgraph/burp-clj-montoya)
(def version "0.1.0-SNAPSHOT")
(def main 'burp-clj-montoya.burp-clj-montoya)
(def class-dir "target/classes")
(defn test "Run all the tests." [opts]
(let [basis (b/create-basis {:aliases [:test]})
cmds (b/java-command
{:basis basis
:main 'clojure.main
:main-args ["-m" "cognitect.test-runner"]})
{:keys [exit]} (b/process cmds)]
(when-not (zero? exit) (throw (ex-info "Tests failed" {}))))
opts)
(defn- uber-opts [opts]
(assoc opts
:lib lib :main main
:uber-file (format "target/%s-%s.jar" lib version)
:basis (b/create-basis {})
:class-dir class-dir
:src-dirs ["src"]
:ns-compile [main]))
(defn compile-java [_]
(b/javac {:src-dirs ["java"]
:class-dir class-dir
:basis (b/create-basis {:project "deps.edn"})}))
;;:javac-opts ["-source" "8" "-target" "8"]}))
(defn ci "Run the CI pipeline of tests (and build the uberjar)." [opts]
(test opts)
(b/delete {:path "target"})
(compile-java nil)
(let [opts (uber-opts opts)]
(println "\nCopying source...")
(b/copy-dir {:src-dirs ["resources" "src"] :target-dir class-dir})
(println (str "\nCompiling " main "..."))
(b/compile-clj opts)
(println "\nBuilding JAR...")
(b/uber opts))
opts)