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: test: name: Test + coverage 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 compose version docker buildx version # Each suite runs once, under Cloverage; the merged report is the dockerized # equivalent of script/coverage. - name: Unit tests (coverage) run: script/docker-unit-coverage - name: Integration tests (coverage) run: script/integration-coverage - name: Merge coverage report run: script/docker-coverage-report # Gitea Actions only supports upload-artifact v3 (v4+ needs GitHub's artifact backend). - name: Upload coverage report uses: actions/upload-artifact@v3 if: always() with: name: coverage path: target/coverage/ if-no-files-found: ignore