diff --git a/.github/workflows/test-and-snapshot.yml b/.github/workflows/test-and-snapshot.yml new file mode 100644 index 0000000..18a1e28 --- /dev/null +++ b/.github/workflows/test-and-snapshot.yml @@ -0,0 +1,81 @@ +name: Clojure CI + +on: [push] + +jobs: + build-and-release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + cache: 'maven' + - name: Setup Clojure + uses: DeLaGuardo/setup-clojure@master + with: + tools-deps: '1.10.3.986' + - name: Run Tests + run: clojure -T:build ci :snapshot true + + build: + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '8', '14', '15', '16', '17' ] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: ${{ matrix.java }} + cache: 'maven' + - name: Setup Clojure + uses: DeLaGuardo/setup-clojure@master + with: + tools-deps: '1.10.3.986' + - name: Run Tests + run: clojure -T:build test + + build-graalvm-old: + runs-on: ubuntu-latest + strategy: + matrix: + graalvm: [ '19.3.6', '20.3.2' ] + base: [ 'java8', 'java11' ] + steps: + - uses: actions/checkout@v2 + - name: Setup GraalVM + uses: DeLaGuardo/setup-graalvm@4.0 + with: + graalvm: ${{ matrix.graalvm }} + java: ${{ matrix.base }} + - name: Setup Clojure + uses: DeLaGuardo/setup-clojure@master + with: + tools-deps: '1.10.3.986' + - name: Run Tests + run: clojure -T:build test + + build-graalvm-new: + runs-on: ubuntu-latest + strategy: + matrix: + graalvm: [ '21.1.0' ] + base: [ 'java11', 'java16' ] + steps: + - uses: actions/checkout@v2 + - name: Setup GraalVM + uses: DeLaGuardo/setup-graalvm@4.0 + with: + graalvm: ${{ matrix.graalvm }} + java: ${{ matrix.base }} + - name: Setup Clojure + uses: DeLaGuardo/setup-clojure@master + with: + tools-deps: '1.10.3.986' + - name: Run Tests + run: clojure -T:build test diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 87a4fd7..f873489 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,31 +1,13 @@ name: Clojure CI -on: [push, pull_request] +on: [pull_request] jobs: - build-and-release: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: '0' - - uses: actions/setup-java@v2 - with: - distribution: 'adopt' - java-version: '11' - cache: 'maven' - - name: Setup Clojure - uses: DeLaGuardo/setup-clojure@master - with: - tools-deps: '1.10.3.986' - - name: Run Tests - run: clojure -T:build ci - build: runs-on: ubuntu-latest strategy: matrix: - java: [ '8', '14', '15', '16', '17' ] + java: [ '8', '11', '14', '15', '16', '17' ] steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v2 @@ -38,7 +20,7 @@ jobs: with: tools-deps: '1.10.3.986' - name: Run Tests - run: clojure -T:build ci + run: clojure -T:build test build-graalvm-old: runs-on: ubuntu-latest @@ -58,7 +40,7 @@ jobs: with: tools-deps: '1.10.3.986' - name: Run Tests - run: clojure -T:build ci + run: clojure -T:build test build-graalvm-new: runs-on: ubuntu-latest @@ -78,4 +60,4 @@ jobs: with: tools-deps: '1.10.3.986' - name: Run Tests - run: clojure -T:build ci + run: clojure -T:build test diff --git a/build.clj b/build.clj index 4014394..e13c606 100644 --- a/build.clj +++ b/build.clj @@ -10,24 +10,29 @@ For more information, run: clojure -A:deps -T:build help/doc" + (:refer-clojure :exclude [test]) (:require [clojure.tools.build.api :as b] [org.corfield.build :as bb])) (def lib 'com.github.seancorfield/next.jdbc) (def version (format "1.2.%s" (b/git-count-revs nil))) +(def snapshot "1.2.999-SNAPSHOT") + +(defn test "Run all the tests." [opts] + (reduce (fn [opts alias] + (bb/run-tests (assoc opts :aliases [alias]))) + opts + [:1.10 :master]) + opts) (defn ci "Run the CI pipeline of tests (and build the JAR)." [opts] (-> opts - (assoc :lib lib :version version) - (as-> opts - (reduce (fn [opts alias] - (bb/run-tests (assoc opts :aliases [alias]))) - opts - [:1.10 :master])) + (assoc :lib lib :version (if (:snapshot opts) snapshot version)) + (test) (bb/clean) (bb/jar))) (defn deploy "Deploy the JAR to Clojars." [opts] (-> opts - (assoc :lib lib :version version) + (assoc :lib lib :version (if (:snapshot opts) snapshot version)) (bb/deploy)))