name: CI on: push: branches: [main] pull_request: # Everything runs in Docker (script/docker-*, script/integration-*), so the runner needs # no JDK, Clojure or Babashka; only a Docker daemon. That means /var/run/docker.sock # mounted into job containers, or a host-mode runner. Scripts move files with `docker cp` # rather than bind mounts so they work from inside a job container. jobs: unit: name: Unit tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Fail fast with a clear message if the runner has no usable Docker. - name: Check Docker run: | docker version docker buildx version - run: script/docker-unit-test integration: name: Integration tests + coverage runs-on: ubuntu-latest needs: unit steps: - uses: actions/checkout@v4 - name: Check Docker run: | docker version docker compose version docker buildx version # Unit + integration under Cloverage, then the merged report # (the dockerized equivalent of script/coverage). - run: script/docker-unit-coverage - run: script/integration-coverage - run: script/docker-coverage-report # 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