--- name: Run tests on: push: branches: [master] pull_request: branches: [master] jobs: build-clj: strategy: matrix: # Supported Java versions: LTS releases and latest jdk: [8, 11, 17, 21, 25] clojure: [11, 12] name: Clojure ${{ matrix.clojure }} (Java ${{ matrix.jdk }}) runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Setup Java ${{ matrix.jdk }} uses: actions/setup-java@v5 with: distribution: zulu java-version: ${{ matrix.jdk }} - uses: actions/cache@v4 with: path: | ~/.m2/repository ~/.gitlibs key: ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }}-${{ matrix.clojure }}-${{ matrix.jdk }} restore-keys: | ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }}-${{ matrix.clojure }}- ${{ runner.os }}-test-deps- - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: cli: latest - name: Run tests run: CLOJURE_ALIAS=clojure-${{ matrix.clojure }} bin/kaocha build-cljs: name: ClojureScript strategy: matrix: mode: [none, advanced, cherry-none, cherry-advanced] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Setup Java 11 uses: actions/setup-java@v5 with: distribution: zulu java-version: 11 - uses: actions/cache@v4 with: path: | ~/.m2/repository ~/.gitlibs key: ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }} restore-keys: | ${{ runner.os }}-test-deps- - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: cli: latest - name: Setup Node.js uses: actions/setup-node@v5 with: node-version: 16 - name: Install dependencies run: npm ci - name: Run tests on ${{ matrix.mode }} run: bin/node ${{ matrix.mode }} build-bb: name: Babashka runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Setup Java 11 uses: actions/setup-java@v5 with: distribution: zulu java-version: 11 - uses: actions/cache@v4 with: path: | ~/.m2/repository ~/.deps.clj ~/.gitlibs key: ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }}-${{ hashFiles('**/bb.edn') }} restore-keys: | ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }}- ${{ runner.os }}-test-deps- - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: cli: latest bb: latest - name: Run tests run: bb test-bb doc-tests: # Builds tests from Documentation with test-doc-blocks and tests that # the examples are still valid. name: Doc Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Setup Java 25 uses: actions/setup-java@v5 with: distribution: zulu java-version: 25 - uses: actions/cache@v4 with: path: | ~/.m2/repository ~/.deps.clj ~/.gitlibs key: ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }}-${{ hashFiles('**/bb.edn') }} restore-keys: | ${{ runner.os }}-test-deps-${{ hashFiles('**/deps.edn') }}- ${{ runner.os }}-test-deps- - name: Setup Clojure uses: DeLaGuardo/setup-clojure@master with: cli: latest bb: latest - name: Run doc tests run: bb test-docs