[nop] Update project template
This commit is contained in:
parent
8b7186a930
commit
1dffa74b8e
8 changed files with 160 additions and 62 deletions
25
.github/workflows/build.yml
vendored
25
.github/workflows/build.yml
vendored
|
|
@ -1,25 +0,0 @@
|
||||||
name: build
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: 14
|
|
||||||
|
|
||||||
- name: Cache deps
|
|
||||||
uses: actions/cache@v1
|
|
||||||
id: cache-deps
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: ${{ runner.os }}-java14-${{ hashFiles('project.clj') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-java14-
|
|
||||||
|
|
||||||
- name: Run tests for Java 14
|
|
||||||
run: |
|
|
||||||
lein test
|
|
||||||
32
.github/workflows/graal-tests.yml
vendored
Normal file
32
.github/workflows/graal-tests.yml
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
name: Graal tests
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
java: ['17']
|
||||||
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: graalvm/setup-graalvm@v1
|
||||||
|
with:
|
||||||
|
version: 'latest'
|
||||||
|
java-version: ${{ matrix.java }}
|
||||||
|
components: 'native-image'
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- uses: DeLaGuardo/setup-clojure@10.0
|
||||||
|
with:
|
||||||
|
lein: latest
|
||||||
|
bb: latest
|
||||||
|
|
||||||
|
- uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: deps-${{ hashFiles('deps.edn') }}
|
||||||
|
restore-keys: deps-
|
||||||
|
|
||||||
|
- run: bb graal-tests
|
||||||
30
.github/workflows/main-tests.yml
vendored
Normal file
30
.github/workflows/main-tests.yml
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
name: Main tests
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tests:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
java: ['17', '18', '19']
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: 'corretto'
|
||||||
|
java-version: ${{ matrix.java }}
|
||||||
|
|
||||||
|
- uses: DeLaGuardo/setup-clojure@10.0
|
||||||
|
with:
|
||||||
|
lein: latest
|
||||||
|
|
||||||
|
- uses: actions/cache@v3
|
||||||
|
id: cache-deps
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: deps-${{ hashFiles('project.clj') }}
|
||||||
|
restore-keys: deps-
|
||||||
|
|
||||||
|
- run: lein test-all
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
> This project uses [Break Versioning](https://github.com/ptaoussanis/encore/blob/master/BREAK-VERSIONING.md) as of **Aug 16, 2014**.
|
This project uses Break Versioning (https://www.taoensso.com/break-versioning)
|
||||||
|
|
||||||
## v3.2.0 / 2022 Jul 18
|
## v3.2.0 / 2022 Jul 18
|
||||||
|
|
||||||
|
|
|
||||||
10
bb.edn
Normal file
10
bb.edn
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{:paths ["bb"]
|
||||||
|
:tasks
|
||||||
|
{:requires ([graal-tests])
|
||||||
|
graal-tests
|
||||||
|
{:doc "Run Graal native-image tests"
|
||||||
|
:task
|
||||||
|
(do
|
||||||
|
(graal-tests/uberjar)
|
||||||
|
(graal-tests/native-image)
|
||||||
|
(graal-tests/run-tests))}}}
|
||||||
36
bb/graal_tests.clj
Executable file
36
bb/graal_tests.clj
Executable file
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env bb
|
||||||
|
|
||||||
|
(ns graal-tests
|
||||||
|
(:require
|
||||||
|
[clojure.string :as str]
|
||||||
|
[babashka.fs :as fs]
|
||||||
|
[babashka.process :refer [shell]]))
|
||||||
|
|
||||||
|
(defn uberjar []
|
||||||
|
(let [command "lein with-profiles +graal-tests uberjar"
|
||||||
|
command
|
||||||
|
(if (fs/windows?)
|
||||||
|
(if (fs/which "lein")
|
||||||
|
command
|
||||||
|
;; Assume PowerShell powershell module
|
||||||
|
(str "powershell.exe -command " (pr-str command)))
|
||||||
|
command)]
|
||||||
|
|
||||||
|
(shell command)))
|
||||||
|
|
||||||
|
(defn executable [dir name]
|
||||||
|
(-> (fs/glob dir (if (fs/windows?) (str name ".{exe,bat,cmd}") name))
|
||||||
|
first
|
||||||
|
fs/canonicalize
|
||||||
|
str))
|
||||||
|
|
||||||
|
(defn native-image []
|
||||||
|
(let [graalvm-home (System/getenv "GRAALVM_HOME")
|
||||||
|
bin-dir (str (fs/file graalvm-home "bin"))]
|
||||||
|
(shell (executable bin-dir "gu") "install" "native-image")
|
||||||
|
(shell (executable bin-dir "native-image") "-jar" "target/graal-tests.jar" "--no-fallback" "graal_tests")))
|
||||||
|
|
||||||
|
(defn run-tests []
|
||||||
|
(let [{:keys [out]} (shell {:out :string} (executable "." "graal_tests"))]
|
||||||
|
(assert (str/includes? out "loaded") out)
|
||||||
|
(println "Native image works!")))
|
||||||
82
project.clj
82
project.clj
|
|
@ -1,59 +1,69 @@
|
||||||
(defproject com.taoensso/nippy "3.2.0"
|
(defproject com.taoensso/nippy "3.2.0"
|
||||||
:author "Peter Taoussanis <https://www.taoensso.com>"
|
:author "Peter Taoussanis <https://www.taoensso.com>"
|
||||||
:description "High-performance serialization library for Clojure"
|
:description "The fastest serialization library for Clojure"
|
||||||
:url "https://github.com/ptaoussanis/nippy"
|
:url "https://github.com/taoensso/nippy"
|
||||||
:license {:name "Eclipse Public License"
|
|
||||||
:url "http://www.eclipse.org/legal/epl-v10.html"
|
:license
|
||||||
:distribution :repo
|
{:name "Eclipse Public License - v 1.0"
|
||||||
:comments "Same as Clojure"}
|
:url "https://www.eclipse.org/legal/epl-v10.html"}
|
||||||
:min-lein-version "2.3.3"
|
|
||||||
:global-vars {*warn-on-reflection* true
|
|
||||||
*assert* true
|
|
||||||
;; *unchecked-math* :warn-on-boxed
|
|
||||||
}
|
|
||||||
|
|
||||||
:dependencies
|
:dependencies
|
||||||
[[org.clojure/tools.reader "1.3.6"]
|
[[org.clojure/tools.reader "1.3.6"]
|
||||||
[com.taoensso/encore "3.23.0"]
|
[com.taoensso/encore "3.31.0"]
|
||||||
[org.iq80.snappy/snappy "0.4"]
|
[org.iq80.snappy/snappy "0.4"]
|
||||||
[org.tukaani/xz "1.9"]
|
[org.tukaani/xz "1.9"]
|
||||||
[org.lz4/lz4-java "1.8.0"]]
|
[org.lz4/lz4-java "1.8.0"]]
|
||||||
|
|
||||||
:resources
|
|
||||||
["resources"]
|
|
||||||
|
|
||||||
:plugins
|
|
||||||
[[lein-pprint "1.3.2"]
|
|
||||||
[lein-ancient "0.7.0"]
|
|
||||||
[lein-codox "0.10.8"]]
|
|
||||||
|
|
||||||
:profiles
|
:profiles
|
||||||
{;; :default [:base :system :user :provided :dev]
|
{;; :default [:base :system :user :provided :dev]
|
||||||
:server-jvm {:jvm-opts ^:replace ["-server" "-Xms1024m" "-Xmx2048m"]}
|
:provided {:dependencies [[org.clojure/clojure "1.11.1"]]}
|
||||||
:provided {:dependencies [[org.clojure/clojure "1.7.0"]]}
|
:c1.11 {:dependencies [[org.clojure/clojure "1.11.1"]]}
|
||||||
:1.7 {:dependencies [[org.clojure/clojure "1.7.0"]]}
|
:c1.10 {:dependencies [[org.clojure/clojure "1.10.1"]]}
|
||||||
:1.8 {:dependencies [[org.clojure/clojure "1.8.0"]]}
|
:c1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}
|
||||||
:1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}
|
|
||||||
:1.10 {:dependencies [[org.clojure/clojure "1.10.1"]]}
|
|
||||||
:1.11 {:dependencies [[org.clojure/clojure "1.11.1"]]}
|
|
||||||
:depr {:jvm-opts ["-Dtaoensso.elide-deprecated=true"]}
|
|
||||||
:test
|
:test
|
||||||
{:jvm-opts
|
{:jvm-opts
|
||||||
["-Xms1024m" "-Xmx2048m"
|
["-server"
|
||||||
|
"-Xms1024m" "-Xmx2048m"
|
||||||
|
"-Dtaoensso.elide-deprecated=true"
|
||||||
"-Dtaoensso.nippy.thaw-serializable-allowlist-base=base.1, base.2"
|
"-Dtaoensso.nippy.thaw-serializable-allowlist-base=base.1, base.2"
|
||||||
"-Dtaoensso.nippy.thaw-serializable-allowlist-add=add.1 , add.2"]
|
"-Dtaoensso.nippy.thaw-serializable-allowlist-add=add.1 , add.2"]
|
||||||
|
|
||||||
|
:global-vars
|
||||||
|
{*warn-on-reflection* true
|
||||||
|
*assert* true
|
||||||
|
*unchecked-math* false #_:warn-on-boxed}
|
||||||
|
|
||||||
:dependencies
|
:dependencies
|
||||||
[[org.clojure/test.check "1.1.1"]
|
[[org.clojure/test.check "1.1.1"]
|
||||||
[org.clojure/data.fressian "1.0.0"]
|
[org.clojure/data.fressian "1.0.0"]
|
||||||
[org.xerial.snappy/snappy-java "1.1.8.4"]]}
|
[org.xerial.snappy/snappy-java "1.1.8.4"]]}
|
||||||
|
|
||||||
:dev [:1.11 :test :server-jvm :depr]}
|
:graal-tests
|
||||||
|
{:dependencies [[org.clojure/clojure "1.11.1"]
|
||||||
|
[com.github.clj-easy/graal-build-time "0.1.4"]]
|
||||||
|
:main taoensso.graal-tests
|
||||||
|
:aot [taoensso.graal-tests]
|
||||||
|
:uberjar-name "graal-tests.jar"}
|
||||||
|
|
||||||
|
:dev
|
||||||
|
[:c1.11 :test
|
||||||
|
{:plugins
|
||||||
|
[[lein-pprint "1.3.2"]
|
||||||
|
[lein-ancient "0.7.0"]
|
||||||
|
[com.taoensso.forks/lein-codox "0.10.10"]]
|
||||||
|
|
||||||
|
:codox
|
||||||
|
{:language #{:clojure #_:clojurescript}
|
||||||
|
:base-language :clojure}}]}
|
||||||
|
|
||||||
|
:test-paths ["test" #_"src"]
|
||||||
|
|
||||||
:aliases
|
:aliases
|
||||||
{"start-dev" ["with-profile" "+dev" "repl" ":headless"]
|
{"start-dev" ["with-profile" "+dev" "repl" ":headless"]
|
||||||
"deploy-lib" ["do" "deploy" "clojars," "install"]
|
;; "build-once" ["do" ["clean"] ["cljsbuild" "once"]]
|
||||||
"test-all" ["with-profile" "+1.10:+1.9:+1.8:+1.7" "test"]}
|
"deploy-lib" ["do" #_["build-once"] ["deploy" "clojars"] ["install"]]
|
||||||
|
|
||||||
:repositories
|
"test-clj" ["with-profile" "+c1.11:+c1.10:+c1.9" "test"]
|
||||||
{"sonatype-oss-public"
|
;; "test-cljs" ["with-profile" "+test" "cljsbuild" "test"]
|
||||||
"https://oss.sonatype.org/content/groups/public/"})
|
"test-all" ["do" ["clean"] ["test-clj"] #_["test-cljs"]]})
|
||||||
|
|
|
||||||
5
test/taoensso/graal_tests.clj
Normal file
5
test/taoensso/graal_tests.clj
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
(ns taoensso.graal-tests
|
||||||
|
(:require [taoensso.nippy :as nippy])
|
||||||
|
(:gen-class))
|
||||||
|
|
||||||
|
(defn -main [& args] (println "Namespace loaded successfully"))
|
||||||
Loading…
Reference in a new issue