Compare commits
2 commits
7ea24fffb5
...
00219a8e38
Author | SHA1 | Date | |
---|---|---|---|
00219a8e38 | |||
47d7e9050a |
6 changed files with 93 additions and 1 deletions
7
bb.edn
7
bb.edn
|
@ -7,4 +7,9 @@
|
||||||
:task (exec 'cognitect.test-runner.api/test)
|
:task (exec 'cognitect.test-runner.api/test)
|
||||||
:exec-args {:dirs ["src/test/clj"]}
|
:exec-args {:dirs ["src/test/clj"]}
|
||||||
:org.babashka/cli {:coerce {:nses [:symbol]
|
:org.babashka/cli {:coerce {:nses [:symbol]
|
||||||
:vars [:symbol]}}}}}
|
:vars [:symbol]}}}
|
||||||
|
publish
|
||||||
|
{:extra-deps {dda/dda-bb-build {:local/root "src/tools/clj"}
|
||||||
|
io.github.clojure/tools.build {:git/tag "v0.9.6" :git/sha "8e78bcc"}
|
||||||
|
slipset/deps-deploy {:mvn/version "0.2.0"}
|
||||||
|
:task (clojure "-T:build deploy")}}}}
|
||||||
|
|
5
doc/dev/clj_setup.md
Normal file
5
doc/dev/clj_setup.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
1. Install babashka
|
||||||
|
|
||||||
|
## Test
|
||||||
|
|
||||||
|
`bb test`
|
17
src/main/clj/dda/devops_build/terragrunt.clj
Normal file
17
src/main/clj/dda/devops_build/terragrunt.clj
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
(ns dda.devops-build.image
|
||||||
|
(:require [orchestra.core :refer [defn-spec]]
|
||||||
|
[babashka.tasks :as t]
|
||||||
|
[dda.devops-build.devops :as d]
|
||||||
|
[dda.devops-build.devops.domain :as dd]
|
||||||
|
[dda.devops-build.terragrunt.domain :as dterra]))
|
||||||
|
|
||||||
|
(def default
|
||||||
|
(merge d/default {}))
|
||||||
|
|
||||||
|
(defn-spec plan nil?
|
||||||
|
[devops ::d/devops]
|
||||||
|
(let [final (merge default devops)]
|
||||||
|
(apply t/shell (dd/clean-build-dir-command final))
|
||||||
|
(apply t/shell (dd/create-build-dir-command final))
|
||||||
|
(apply t/shell (dterra/copy-terragrunt-command final))
|
||||||
|
(apply t/shell (dterra/plan-command final))))
|
64
src/tools/clj/build.clj
Normal file
64
src/tools/clj/build.clj
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
(ns build
|
||||||
|
(:require [clojure.tools.build.api :as b]
|
||||||
|
[clojure.edn :as edn]))
|
||||||
|
|
||||||
|
(def project (-> (edn/read-string (slurp "deps.edn"))
|
||||||
|
:aliases :neil :project))
|
||||||
|
(def lib (or (:name project) 'my/lib1))
|
||||||
|
|
||||||
|
;; use neil project set version 1.2.0 to update the version in deps.edn
|
||||||
|
|
||||||
|
(def version (or (:version project)
|
||||||
|
"1.2.0"))
|
||||||
|
(def class-dir "target/classes")
|
||||||
|
(def basis (b/create-basis {:project "deps.edn"}))
|
||||||
|
(def uber-file (format "target/%s-%s-standalone.jar" (name lib) version))
|
||||||
|
(def jar-file (format "target/%s-%s.jar" (name lib) version))
|
||||||
|
|
||||||
|
(defn clean [_]
|
||||||
|
(b/delete {:path "target"}))
|
||||||
|
|
||||||
|
(defn jar [_]
|
||||||
|
(b/write-pom {:class-dir class-dir
|
||||||
|
:lib lib
|
||||||
|
:version version
|
||||||
|
:basis basis
|
||||||
|
:src-dirs ["src"]
|
||||||
|
:pom-data
|
||||||
|
[[:licenses
|
||||||
|
[:license
|
||||||
|
[:name "MIT License"]
|
||||||
|
[:url "https://opensource.org/license/mit/"]]]]})
|
||||||
|
(b/copy-dir {:src-dirs ["src" "resources"]
|
||||||
|
:target-dir class-dir})
|
||||||
|
(b/jar {:class-dir class-dir
|
||||||
|
:jar-file jar-file}))
|
||||||
|
|
||||||
|
(defn install [_]
|
||||||
|
(jar {})
|
||||||
|
(b/install {:basis basis
|
||||||
|
:lib lib
|
||||||
|
:version version
|
||||||
|
:jar-file jar-file
|
||||||
|
:class-dir class-dir}))
|
||||||
|
|
||||||
|
(defn uber [_]
|
||||||
|
(clean nil)
|
||||||
|
(b/copy-dir {:src-dirs ["src" "resources"]
|
||||||
|
:target-dir class-dir})
|
||||||
|
(b/compile-clj {:basis basis
|
||||||
|
:src-dirs ["src"]
|
||||||
|
:class-dir class-dir})
|
||||||
|
(b/uber {:class-dir class-dir
|
||||||
|
:uber-file uber-file
|
||||||
|
:basis basis}))
|
||||||
|
|
||||||
|
(defn deploy [opts]
|
||||||
|
(clean opts)
|
||||||
|
(jar opts)
|
||||||
|
((requiring-resolve 'deps-deploy.deps-deploy/deploy)
|
||||||
|
(merge {:installer :remote
|
||||||
|
:artifact jar-file
|
||||||
|
:pom-file (b/pom-path {:lib lib :class-dir class-dir})}
|
||||||
|
opts))
|
||||||
|
opts)
|
1
src/tools/clj/deps.edn
Normal file
1
src/tools/clj/deps.edn
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{:deps {}}
|
Loading…
Reference in a new issue