diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e0d4f0a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,57 @@ +name: tests + +on: + pull_request: + branches: [main] + push: + branches: [main] + workflow_dispatch: # Supports manual triggering + +jobs: + clojure: + strategy: + matrix: + # Uncomment to enable all of them + # os: [ubuntu-latest, macOS-latest, windows-latest] + os: [ubuntu-latest] + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + # It is important to install java before installing clojure tools which needs java + # exclusions: babashka, clj-kondo and cljstyle + - name: Prepare java + uses: actions/setup-java@v3 + with: + distribution: "zulu" + java-version: "17" + + - name: Install clojure tools + uses: DeLaGuardo/setup-clojure@12.5 + with: + # Install just one or all simultaneously + # The value must indicate a particular version of the tool, or use 'latest' + # to always provision the latest version + cli: 1.10.1.693 # Clojure CLI based on tools.deps + lein: 2.11.2 # Leiningen + + # Optional step: + - name: Cache clojure dependencies + uses: actions/cache@v3 + with: + path: | + ~/.m2/repository + ~/.gitlibs + ~/.deps.clj + # List all files containing dependencies: + key: cljdeps-${{ hashFiles('project.clj') }} + # key: cljdeps-${{ hashFiles('deps.edn', 'bb.edn') }} + # key: cljdeps-${{ hashFiles('project.clj') }} + # key: cljdeps-${{ hashFiles('build.boot') }} + restore-keys: cljdeps- + + - name: Run Tests + run: lein test