diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml new file mode 100644 index 00000000..85e86658 --- /dev/null +++ b/.github/workflows/testsuite.yml @@ -0,0 +1,78 @@ +name: testsuite + +on: + push: + pull_request: + +jobs: + build-clj: + strategy: + matrix: + # Supported Java versions: LTS releases 8 and 11 and the latest release + jdk: [8, 11, 15] + + name: Clojure (Java ${{ matrix.jdk }}) + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-clj-${{ hashFiles('**/project.clj') }} + restore-keys: | + ${{ runner.os }}-clj- + - name: Setup Java ${{ matrix.jdk }} + uses: actions/setup-java@v1.4.3 + with: + java-version: ${{ matrix.jdk }} + - name: Setup Clojure + uses: DeLaGuardo/setup-clojure@3.1 + with: + lein: 2.9.5 + - name: Run tests + run: ./scripts/test.sh clj + + build-cljs: + name: ClojureScript + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: | + ~/.m2/repository + **/node_modules + key: ${{ runner.os }}-cljs-${{ hashFiles('**/project.clj', '**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-cljs- + - name: Setup Java 11 + uses: actions/setup-java@v1.4.3 + with: + java-version: 11 + - name: Setup Clojure + uses: DeLaGuardo/setup-clojure@3.1 + with: + lein: 2.9.5 + - name: Setup Node.js + uses: actions/setup-node@v2.1.2 + with: + node-version: 12 + - name: Install dependencies + run: | + npm ci + - name: Install modules + run: ./scripts/lein-modules install + - name: Run tests + run: ./scripts/test.sh cljs + + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Verify cljdoc.edn + run: curl -fsSL https://raw.githubusercontent.com/cljdoc/cljdoc/master/script/verify-cljdoc-edn | bash -s doc/cljdoc.edn diff --git a/README.md b/README.md index 46aaa9ef..e075bdff 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# reitit [![Build Status](https://img.shields.io/circleci/project/github/metosin/reitit.svg)](https://circleci.com/gh/metosin/reitit) [![cljdoc badge](https://cljdoc.org/badge/metosin/reitit)](https://cljdoc.org/jump/release/metosin/reitit) [![Slack](https://img.shields.io/badge/clojurians-reitit-blue.svg?logo=slack)](https://clojurians.slack.com/messages/reitit/) +# reitit [![Build Status](https://github.com/metosin/reitit/workflows/testsuite/badge.svg)](https://github.com/metosin/reitit/actions?query=workflow%3Atestsuite) [![cljdoc badge](https://cljdoc.org/badge/metosin/reitit)](https://cljdoc.org/jump/release/metosin/reitit) [![Slack](https://img.shields.io/badge/clojurians-reitit-blue.svg?logo=slack)](https://clojurians.slack.com/messages/reitit/) A fast data-driven router for Clojure(Script).