Skip to content

Commit

Permalink
port to tools.deps
Browse files Browse the repository at this point in the history
  • Loading branch information
mpenet committed Jan 27, 2025
1 parent 8cd24d5 commit 8063821
Show file tree
Hide file tree
Showing 8 changed files with 219 additions and 46 deletions.
6 changes: 2 additions & 4 deletions .github/workflows/default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ jobs:
- name: Install clojure tools
uses: DeLaGuardo/[email protected]
with:
lein: 2.11.2
- name: Install dependencies
run: lein deps
cli: 1.10.1.693
- name: Run tests
run: lein test
run: clojure -X:test
36 changes: 36 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Release

on:
push:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
release:

runs-on: ubuntu-latest

steps:

- name: Check out Git repository
uses: actions/checkout@v3
with:
ref: master
fetch-depth: 0

- uses: fregante/setup-git-user@v2

- name: Install clojure tools
uses: DeLaGuardo/[email protected]
with:
cli: 1.11.1.1105

- name: Release to clojars
env:
CLOJARS_USERNAME: ${{ secrets.CLOJARS_USERNAME }}
CLOJARS_PASSWORD: ${{ secrets.CLOJARS_PASSWORD }}
run: clojure -T:build release
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ pom.xml.asc
/.nrepl-port
.hgignore
.hg/
dev/
dev/
.clj-kondo
.lsp
75 changes: 75 additions & 0 deletions build.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
(ns build
(:refer-clojure :exclude [test])
(:require [clojure.tools.build.api :as b]
[clojure.tools.build.tasks.process :as p]
[deps-deploy.deps-deploy :as dd]))

(def lib 'exoscale/reporter)
(def version (format "1.0.%s" (b/git-count-revs nil)))
(def class-dir "target/classes")
(def copy-srcs ["src"])
(def target-dir "target")
(def jar-file (format "%s/%s-%s.jar" target-dir (name lib) version))

(def basis (delay (b/create-basis {:project "deps.edn"})))

(defn clean
[opts]
(b/delete {:path target-dir})
opts)

(defn jar
[opts]
(b/write-pom {:class-dir class-dir
:lib lib
:version version
:basis @basis
:src-dirs ["src"]
:pom-data
[[:licenses
[:license
[:name "MIT"]
[:url "https://opensource.org/license/mit/"]
[:distribution "repo"]]
[:license
[:name "ISC"]
[:url "https://opensource.org/license/isc-license-txt/"]
[:distribution "repo"]]]]})
(b/copy-dir {:src-dirs copy-srcs
:target-dir class-dir})
(b/jar {:class-dir class-dir
:jar-file jar-file})
opts)

(defn deploy
[opts]
(dd/deploy {:artifact jar-file
:pom-file (format "%s/classes/META-INF/maven/%s/pom.xml"
target-dir
lib)
:installer :remote
:sign-releases? false
:repository "clojars"})
opts)

(defn- sh
[& cmds]
(doseq [cmd cmds]
(p/process {:command-args ["sh" "-c" cmd]})))

(defn tag
[opts]
(sh
(format "git tag -a \"%s\" --no-sign -m \"Release %s\"" version version)
"git pull"
"git push --follow-tags")
opts)

#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
(defn release
[opts]
(-> opts
clean
jar
deploy
tag))
47 changes: 35 additions & 12 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,13 +1,36 @@
{:paths
["src"]
{:paths ["src"]

:deps
{org.clojure/clojure "1.9.0"
org.clojure/tools.logging "0.4.0"
com.stuartsierra/component "0.3.2"
io.sentry/sentry-clj "7.6.215"
spootnik/net "0.3.3-beta24"
spootnik/uncaught "0.5.3"
metrics-clojure "2.10.0"
metrics-clojure-riemann "2.10.0"
metrics-clojure-jvm "2.10.0"
metrics-clojure-graphite "2.10.0"}}
{aleph/aleph {:mvn/version "0.4.7-alpha5"}
org.clojure/clojure {:mvn/version "1.10.1"}
org.clojure/tools.logging {:mvn/version "1.0.0"}
com.stuartsierra/component {:mvn/version "1.0.0"}
io.sentry/sentry-clj {:mvn/version "7.6.215"}
spootnik/uncaught {:mvn/version "0.5.5"}
metrics-clojure/metrics-clojure {:mvn/version "2.10.0"}
metrics-clojure-riemann/metrics-clojure-riemann {:mvn/version "2.10.0"}
metrics-clojure-jvm/metrics-clojure-jvm {:mvn/version "2.10.0"}
metrics-clojure-graphite/metrics-clojure-graphite {:mvn/version "2.10.0"}
io.prometheus/simpleclient {:mvn/version "0.12.0"}
io.prometheus/simpleclient_common {:mvn/version "0.12.0"}
io.prometheus/simpleclient_hotspot {:mvn/version "0.12.0"}
io.prometheus/simpleclient_dropwizard {:mvn/version "0.12.0"}
io.prometheus/simpleclient_pushgateway {:mvn/version "0.12.0"}
camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.2"}
javax.xml.bind/jaxb-api {:mvn/version "2.4.0-b180830.0359"}}

:aliases
{:build
{:deps {io.github.clojure/tools.build {:git/tag "v0.10.6" :git/sha "52cf7d6"}
io.github.slipset/deps-deploy {:git/sha "b87c9299761762984bd54a285ca8fa0aac81809f"}}
:ns-default build}

:test
{:extra-deps {exoscale/test-runner {:local/root "dev"}
com.soundcloud/prometheus-clj {:mvn/version "2.4.1"}
org.slf4j/slf4j-api {:mvn/version "1.7.26"}
org.slf4j/slf4j-log4j12 {:mvn/version "1.7.26"}
org.clojure/tools.logging {:mvn/version "0.4.1"}}
:jvm-opts ["-Dclojure.main.report=stderr"]
:exec-fn test-runner/run
:extra-paths ["test" "test/resources"]}}}
3 changes: 3 additions & 0 deletions dev/deps.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{:paths ["."]
:deps {com.exoscale/eftest {:mvn/version "1.0.0"}
org.clojure/test.check {:mvn/version "1.1.1"}}}
65 changes: 65 additions & 0 deletions dev/test_runner.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
(ns test-runner
(:gen-class)
(:require [clojure.test]
eftest.report.pretty
[eftest.runner :as ef]))

(def default-options
{:dir "test"
:selector (constantly true)
:capture-output? false
:fail-fast? true
:multithread? false
:reporters [eftest.report.pretty/report]})

(defn sort-vars
[vars]
(sort-by (fn [var]
(let [{:keys [ns line]} (meta var)]
[(str ns) line]))
vars))

(defn- ret->exit-code
[{:as _ret :keys [error fail]}]
(System/exit
(cond
(and (pos? fail) (pos? error)) 30
(pos? fail) 20
(pos? error) 10
:else 0)))

(defn combined-reporter
"Combines the reporters by running first one directly,
and others with clojure.test/*report-counters* bound to nil."
[[report & rst]]
(fn [m]
(report m)
(doseq [report rst]
(binding [clojure.test/*report-counters* nil]
(report m)))))

(defn find-tests [{:keys [dir]}] (ef/find-tests dir))

(defn setup-options
[opts]
(let [{:as opts :keys [reporters]} (merge default-options opts)]
(cond-> opts
(seq reporters)
(assoc :report (combined-reporter reporters)))))

(defn run
[options]
(let [options (setup-options options)]
(-> (find-tests options)
(ef/run-tests options)
ret->exit-code)))

(defn run-unit
[options]
(run (assoc options
:selector
(complement :integration))))

(defn run-integation
[options]
(run (assoc options :selector :integration)))
29 changes: 0 additions & 29 deletions project.clj

This file was deleted.

0 comments on commit 8063821

Please sign in to comment.