78 lines
1.9 KiB
YAML
78 lines
1.9 KiB
YAML
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
|