@@ -44,25 +44,65 @@ concurrency:
4444
4545jobs :
4646 lint-and-test :
47- runs-on : ubuntu-22.04
47+ runs-on : ubuntu-latest
4848 strategy :
4949 matrix :
5050 python : ['3.9', '3.10', '3.11', '3.12']
5151
5252 steps :
53- - uses : actions/checkout@v4
54- - name : Install poetry
55- run : make install-poetry
56- - uses : actions/setup-python@v5
53+ - uses : actions/checkout@v5
54+ - uses : actions/setup-python@v6
5755 with :
5856 python-version : ${{ matrix.python }}
59- cache : poetry
60- cache-dependency-path : ./ poetry.lock
57+ - name : Install poetry
58+ run : make install- poetry
6159 - name : Install system dependencies
6260 run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
6361 - name : Install
6462 run : make install-dependencies
65- - name : Linters
63+ - name : Run linters
6664 run : make lint
67- - name : Tests
68- run : make test-coverage
65+ - name : Run unit tests with coverage
66+ run : COVERAGE=1 make test
67+ - name : Generate coverage report (85%) # Coverage threshold should only increase over time — never decrease it!
68+ run : COVERAGE_FAIL_UNDER=85 make coverage-report
69+
70+ integration-test :
71+ runs-on : ubuntu-latest
72+ strategy :
73+ matrix :
74+ python : ['3.9', '3.10', '3.11', '3.12']
75+
76+ steps :
77+ - uses : actions/checkout@v5
78+ - name : Install system dependencies
79+ run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
80+ - name : Install
81+ run : make install
82+
83+ - name : Run integration tests with coverage
84+ run : COVERAGE=1 make test-integration
85+ - name : Show debug logs
86+ if : ${{ failure() }}
87+ run : docker compose -f dev/docker-compose.yml logs
88+
89+ - name : Run s3 integration tests with coverage
90+ run : COVERAGE=1 make test-s3
91+ - name : Show debug logs
92+ if : ${{ failure() }}
93+ run : docker compose -f dev/docker-compose.yml logs
94+
95+ - name : Run adls integration tests with coverage
96+ run : COVERAGE=1 make test-adls
97+ - name : Show debug logs
98+ if : ${{ failure() }}
99+ run : docker compose -f dev/docker-compose-azurite.yml logs
100+
101+ - name : Run gcs integration tests with coverage
102+ run : COVERAGE=1 make test-gcs
103+ - name : Show debug logs
104+ if : ${{ failure() }}
105+ run : docker compose -f dev/docker-compose-gcs-server.yml logs
106+
107+ - name : Generate coverage report (75%) # Coverage threshold should only increase over time — never decrease it!
108+ run : COVERAGE_FAIL_UNDER=75 make coverage-report
0 commit comments