diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e88f29..fe52c8c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,9 +25,10 @@ jobs: with: path: | ~/.m2/repository + ~/.deps.clj ~/.gitlibs - key: $${ runner.os }}-cljdeps-release-${{ hashFiles('deps.edn') }} - restore-keys: $${ runner.os }}-cljdeps-release- + key: $${ runner.os }}-cljdeps-${{ hashFiles('deps.edn','bb.edn') }} + restore-keys: $${ runner.os }}-cljdeps- - name: Setup Java uses: actions/setup-java@v4 @@ -53,7 +54,7 @@ jobs: clojure -Sdescribe - name: Download Clojure Dependencies - run: clojure -P -M:jar:deploy + run: bb download-deps - name: Release Prep (step 1 of 4) run: bb ci-release prep diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e10803b..ff75a7f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,8 +33,9 @@ jobs: with: path: | ~/.m2/repository + ~/.deps.clj ~/.gitlibs - key: $${ runner.os }}-cljdeps-${{ hashFiles('deps.edn') }} + key: $${ runner.os }}-cljdeps-${{ hashFiles('deps.edn','bb.edn') }} restore-keys: $${ runner.os }}-cljdeps- - name: Setup Java @@ -82,7 +83,7 @@ jobs: clojure -Sdescribe - name: Download Clojure Dependencies - run: clojure -P + run: bb download-deps - name: Run CI Tests run: bb ci-test diff --git a/bb.edn b/bb.edn index be6c681..16cf85a 100644 --- a/bb.edn +++ b/bb.edn @@ -40,6 +40,8 @@ (status/line :detail "\nTASK %s done." name))) ;; commands + download-deps {:doc "bring down Clojure deps" + :task (clojure "-T:build download-deps")} lint {:doc "[--rebuild] lint source code with clj-kondo" :task lint/-main} diff --git a/build.clj b/build.clj index 04c4663..f546b10 100644 --- a/build.clj +++ b/build.clj @@ -1,8 +1,7 @@ (ns build (:require [clojure.edn :as edn] [clojure.java.io :as io] - [clojure.tools.build.api :as b] - [deps-deploy.deps-deploy :as dd])) + [clojure.tools.build.api :as b])) (def lib 'com.github.lread/test-doc-blocks) (def version (let [version-template (-> "version.edn" slurp edn/read-string) @@ -66,11 +65,28 @@ (defn deploy "Deploy built jar to clojars" [_] - (dd/deploy {:installer :remote - :artifact jar-file - :pom-file (b/pom-path {:lib lib :class-dir class-dir})})) + ((requiring-resolve 'deps-deploy.deps-deploy/deploy) + {:installer :remote + :artifact jar-file + :pom-file (b/pom-path {:lib lib :class-dir class-dir})})) (defn project-lib "Returns project groupid/artifactid" [_] (println lib)) + +(defn download-deps + "Download all deps for all aliases" + [_] + (let [aliases (->> "deps.edn" + slurp + edn/read-string + :aliases + keys + sort)] + ;; one at a time because aliases with :replace-deps will... well... you know. + (println "Bring down default deps") + (b/create-basis {}) + (doseq [a (sort aliases)] + (println "Bring down deps for alias" a) + (b/create-basis {:aliases [a]})))) diff --git a/deps.edn b/deps.edn index 64d01c1..000c132 100644 --- a/deps.edn +++ b/deps.edn @@ -76,10 +76,13 @@ ;; ;; Deployment ;; - :build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.1"} - slipset/deps-deploy {:mvn/version "0.2.2"}} + :build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.1"}} :ns-default build} + ;; keep deploy deps separate from build deps to avoid download-deps issues + ;; caused by, I think, conflicting maven deps + :deploy {:extra-deps {slipset/deps-deploy {:mvn/version "0.2.2"}}} + ;; Maintenance :outdated {:extra-deps {org.clojure/clojure {:mvn/version "1.11.3"} com.github.liquidz/antq {:mvn/version "2.8.1201"}