name: CI on: push: branches: [main] pull_request: jobs: unit: name: Unit tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin java-version: "11" - uses: DeLaGuardo/setup-clojure@13.4.0 with: cli: latest - uses: actions/cache@v4 with: path: | ~/.m2/repository ~/.gitlibs key: deps-${{ runner.os }}-${{ hashFiles('deps.edn') }} restore-keys: deps-${{ runner.os }}- - run: script/unit-test integration: name: Integration tests + coverage runs-on: ubuntu-latest needs: unit steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin java-version: "11" - uses: DeLaGuardo/setup-clojure@13.4.0 with: cli: latest bb: latest - uses: actions/cache@v4 with: path: | ~/.m2/repository ~/.gitlibs key: deps-${{ runner.os }}-${{ hashFiles('deps.edn') }} restore-keys: deps-${{ runner.os }}- # The integration suite drives `docker compose` and `docker buildx`, so the # runner must expose a Docker daemon (e.g. /var/run/docker.sock mounted into # job containers, or a host-mode runner). Fail fast with a clear message. - name: Check Docker run: | docker version docker compose version docker buildx version # Unit + integration under Cloverage, then the merged report. - run: script/coverage # Gitea Actions only supports upload-artifact v3 (v4+ needs GitHub's artifact backend). - uses: actions/upload-artifact@v3 if: always() with: name: coverage path: target/coverage/ if-no-files-found: ignore