diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..5379433 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,41 @@ +name: CI + +on: [push, pull_request] + +jobs: + test-solutions: + strategy: + matrix: + os: [ubuntu-latest, macOS-latest] + fail-fast: false + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Prepare java + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '17' + + - name: Install Clojure + uses: DeLaGuardo/setup-clojure@12.1 + with: + cli: '1.10.3.1013' + + - name: Cache clojure dependencies + uses: actions/cache@v3 + with: + path: | + ~/.m2/repository + ~/.gitlibs + ~/.deps.clj + # List all files containing dependencies: + key: cljdeps-${{ hashFiles('deps.edn') }} + restore-keys: cljdeps- + + - name: Test solutions + run: clojure -M clojure/tests/solutions_tests.clj diff --git a/clojure/tests/solutions_tests.clj b/clojure/tests/solutions_tests.clj index 1126886..94cd266 100644 --- a/clojure/tests/solutions_tests.clj +++ b/clojure/tests/solutions_tests.clj @@ -4,7 +4,7 @@ day11 day12 day13 day14 day15 day16 day17 day18 day19 day20 day21 day22 day23 day24 day25 - [clojure.test :refer [deftest are run-tests]])) + [clojure.test :refer [deftest are run-tests successful?]])) (defmacro check-day [day test-results real-results] @@ -64,4 +64,6 @@ (check-day 25 "2=-1=0" "122-2=200-0111--=200") -(run-tests) +(let [summ (run-tests)] + (when-not (successful? summ) + (throw (Exception. "tests failed"))))