50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
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 a coverage tool. The Clojure reports (Cloverage) are merged
|
|
# below; the UI's (c8) stands on its own. Together this is the dockerized equivalent of
|
|
# script/coverage.
|
|
- name: UI tests (coverage)
|
|
run: script/docker-ui-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
|