Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,16 @@ jobs:
git diff --exit-code
- name: Run tests
run: bb run test

format:

runs-on: ubuntu-latest

steps:
- name: Install cljfmt
uses: DeLaGuardo/setup-clojure@13.4
with:
cljfmt: latest
- uses: actions/checkout@v4
- name: Check formatting
run: cljfmt check src test bb.edn deps.edn tests.edn
30 changes: 15 additions & 15 deletions src/docker_clojure/dockerfile.clj
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,19 @@

(defn all-contents [installer-hashes variant]
(concat
["" "### INSTALL LEIN ###"]
(lein/install
installer-hashes
(assoc variant :build-tool-version
(get-in variant [:build-tool-versions "lein"])))
["" "### INSTALL TOOLS-DEPS ###"]
(tools-deps/install
installer-hashes
(assoc variant :build-tool-version
(get-in variant [:build-tool-versions "tools-deps"])))
[""]
(entrypoint variant)
["" "CMD [\"-M\", \"--repl\"]"]))
["" "### INSTALL LEIN ###"]
(lein/install
installer-hashes
(assoc variant :build-tool-version
(get-in variant [:build-tool-versions "lein"])))
["" "### INSTALL TOOLS-DEPS ###"]
(tools-deps/install
installer-hashes
(assoc variant :build-tool-version
(get-in variant [:build-tool-versions "tools-deps"])))
[""]
(entrypoint variant)
["" "CMD [\"-M\", \"--repl\"]"]))

(defn copy-java-from-temurin-contents
[{:keys [jdk-version] :as _variant}]
Expand Down Expand Up @@ -86,8 +86,8 @@
(log "Generating" (str build-dir "/" filename))
(write-file build-dir filename installer-hashes variant)
(assoc variant
:build-dir build-dir
:dockerfile filename)))
:build-dir build-dir
:dockerfile filename)))

(defn clean-all []
(sh "sh" "-c" "rm -rf target/*"))
12 changes: 6 additions & 6 deletions src/docker_clojure/dockerfile/shared.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
(butlast cmds)
cmds)]
(concat base
(map #(str % " && \\")
commands)
(when end? [(last cmds)]))))
(map #(str % " && \\")
commands)
(when end? [(last cmds)]))))

(defn get-deps [type distro-deps distro]
(some->> distro namespace keyword (get distro-deps) type))
Expand Down Expand Up @@ -68,7 +68,7 @@
[{:keys [jdk-version]}]
(if (>= jdk-version 16)
(concat
["COPY entrypoint /usr/local/bin/entrypoint"]
[""]
["ENTRYPOINT [\"entrypoint\"]"])
["COPY entrypoint /usr/local/bin/entrypoint"]
[""]
["ENTRYPOINT [\"entrypoint\"]"])
nil))
14 changes: 7 additions & 7 deletions src/docker_clojure/dockerfile/tools_deps.clj
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@
"RUN \\"]
(concat-commands install-dep-cmds)
(concat-commands
["curl -fsSLO https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh"
"sha256sum linux-install-$CLOJURE_VERSION.sh"
(str "echo \"" (get-in installer-hashes ["tools-deps" build-tool-version]) " *linux-install-$CLOJURE_VERSION.sh\" | sha256sum -c -")
"chmod +x linux-install-$CLOJURE_VERSION.sh"
"./linux-install-$CLOJURE_VERSION.sh"
"rm linux-install-$CLOJURE_VERSION.sh"
"clojure -e \"(clojure-version)\""] (empty? uninstall-dep-cmds))
["curl -fsSLO https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh"
"sha256sum linux-install-$CLOJURE_VERSION.sh"
(str "echo \"" (get-in installer-hashes ["tools-deps" build-tool-version]) " *linux-install-$CLOJURE_VERSION.sh\" | sha256sum -c -")
"chmod +x linux-install-$CLOJURE_VERSION.sh"
"./linux-install-$CLOJURE_VERSION.sh"
"rm linux-install-$CLOJURE_VERSION.sh"
"clojure -e \"(clojure-version)\""] (empty? uninstall-dep-cmds))
(concat-commands uninstall-dep-cmds :end)
(concat [""] docker-bug-notice
["COPY rlwrap.retry /usr/local/bin/rlwrap"])
Expand Down
34 changes: 17 additions & 17 deletions src/docker_clojure/manifest.clj
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
[variant]
(str/join "\n"
(conj
(remove nil? [(str/join " " (conj ["Tags:"]
(->> variant
docker/all-tags
(str/join ", "))))
(when-let [arch (:architectures variant)]
(str/join " " ["Architectures:"
(str/join ", " arch)]))
(str/join " " ["Directory:"
(df/build-dir variant)])])
nil)))
(remove nil? [(str/join " " (conj ["Tags:"]
(->> variant
docker/all-tags
(str/join ", "))))
(when-let [arch (:architectures variant)]
(str/join " " ["Architectures:"
(str/join ", " arch)]))
(str/join " " ["Directory:"
(df/build-dir variant)])])
nil)))

(defn generate
"Generates Docker manifest file for a given git commit and returns it as a
Expand All @@ -29,12 +29,12 @@
" "))]
(str/join "\n"
(concat
[(str/join " " [maintainers-label
(str/join maintainers-sep maintainers)])
(str/join " " ["Architectures:" (str/join ", " architectures)])
(str/join " " ["GitRepo:" git-repo])
(str/join " " ["GitCommit:" git-commit])]
[(str/join " " [maintainers-label
(str/join maintainers-sep maintainers)])
(str/join " " ["Architectures:" (str/join ", " architectures)])
(str/join " " ["GitRepo:" git-repo])
(str/join " " ["GitCommit:" git-commit])]

(map variant->manifest merged-arch-variants)
(map variant->manifest merged-arch-variants)

[nil]))))
[nil]))))
42 changes: 21 additions & 21 deletions src/docker_clojure/variant.clj
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@

(s/def ::variant
(s/with-gen
::variant-base
#(gen/fmap (fn [[v btv]]
(if (= ::core/all (:build-tool v))
(-> v ; ::core/all implies docker tag "latest"
(assoc :build-tool-version nil
:build-tool-versions btv)
(dissoc :distro :docker-tag :base-image-tag :base-image))
v))
(gen/tuple (s/gen ::variant-base)
(gen/map (s/gen ::cfg/specific-build-tool)
(s/gen ::cfg/specific-build-tool-version))))))
::variant-base
#(gen/fmap (fn [[v btv]]
(if (= ::core/all (:build-tool v))
(-> v ; ::core/all implies docker tag "latest"
(assoc :build-tool-version nil
:build-tool-versions btv)
(dissoc :distro :docker-tag :base-image-tag :base-image))
v))
(gen/tuple (s/gen ::variant-base)
(gen/map (s/gen ::cfg/specific-build-tool)
(s/gen ::cfg/specific-build-tool-version))))))

(s/def ::variants (s/coll-of ::variant))

Expand Down Expand Up @@ -153,7 +153,7 @@
(if-let [matching
(some #(when
(equal-except-architecture? v %)
%)
%)
mav)]
(-> mav
(->> (remove #(= % matching)))
Expand All @@ -170,16 +170,16 @@
:args (s/cat :default-architectures ::cfg/architectures
:variants
(s/with-gen
::variants
#(gen/fmap
(fn [variants]
::variants
#(gen/fmap
(fn [variants]
;; duplicate variants for each architecture
(mapcat (fn [variant]
(map (fn [arch]
(assoc variant :architecture arch))
cfg/architectures))
variants))
(s/gen (s/coll-of ::variant)))))
(mapcat (fn [variant]
(map (fn [arch]
(assoc variant :architecture arch))
cfg/architectures))
variants))
(s/gen (s/coll-of ::variant)))))
:ret (s/coll-of ::manifest-variant)
:fn #(let [ret-count (-> % :ret count)
arg-variants (-> % :args :variants)
Expand Down
Loading
Loading