@@ -43,9 +43,10 @@ concurrency:
4343 cancel-in-progress : ${{ github.event_name == 'pull_request' }}
4444
4545jobs :
46- lint-and-test :
46+ lint-and-unit- test :
4747 runs-on : ubuntu-latest
4848 strategy :
49+ fail-fast : true
4950 matrix :
5051 python : ['3.10', '3.11', '3.12', '3.13']
5152
5657 python-version : ${{ matrix.python }}
5758 - name : Install UV
5859 uses : astral-sh/setup-uv@v7
60+ with :
61+ enable-cache : true
5962 - name : Install system dependencies
6063 run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
6164 - name : Install
@@ -69,45 +72,130 @@ jobs:
6972
7073 integration-test :
7174 runs-on : ubuntu-latest
72- strategy :
73- matrix :
74- python : ['3.10', '3.11', '3.12', '3.13']
75-
7675 steps :
7776 - uses : actions/checkout@v6
7877 - uses : actions/setup-python@v6
7978 with :
80- python-version : ${{ matrix.python }}
79+ python-version : ' 3.12 '
8180 - name : Install UV
8281 uses : astral-sh/setup-uv@v7
82+ with :
83+ enable-cache : true
8384 - name : Install system dependencies
8485 run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
8586 - name : Install
8687 run : make install
87-
8888 - name : Run integration tests with coverage
8989 run : COVERAGE=1 make test-integration
9090 - name : Show debug logs
9191 if : ${{ failure() }}
92- run : docker compose -f dev/docker-compose.yml logs
92+ run : docker compose -f dev/docker-compose-integration.yml logs
93+ - name : Upload coverage data
94+ uses : actions/upload-artifact@v4
95+ with :
96+ name : coverage-integration
97+ path : .coverage*
98+ include-hidden-files : true
9399
100+ integration-test-s3 :
101+ runs-on : ubuntu-latest
102+ steps :
103+ - uses : actions/checkout@v6
104+ - uses : actions/setup-python@v6
105+ with :
106+ python-version : ' 3.12'
107+ - name : Install UV
108+ uses : astral-sh/setup-uv@v7
109+ with :
110+ enable-cache : true
111+ - name : Install system dependencies
112+ run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
113+ - name : Install
114+ run : make install
94115 - name : Run s3 integration tests with coverage
95116 run : COVERAGE=1 make test-s3
96117 - name : Show debug logs
97118 if : ${{ failure() }}
98119 run : docker compose -f dev/docker-compose.yml logs
120+ - name : Upload coverage data
121+ uses : actions/upload-artifact@v4
122+ with :
123+ name : coverage-s3
124+ path : .coverage*
125+ include-hidden-files : true
99126
127+ integration-test-adls :
128+ runs-on : ubuntu-latest
129+ steps :
130+ - uses : actions/checkout@v6
131+ - uses : actions/setup-python@v6
132+ with :
133+ python-version : ' 3.12'
134+ - name : Install UV
135+ uses : astral-sh/setup-uv@v7
136+ with :
137+ enable-cache : true
138+ - name : Install system dependencies
139+ run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
140+ - name : Install
141+ run : make install
100142 - name : Run adls integration tests with coverage
101143 run : COVERAGE=1 make test-adls
102144 - name : Show debug logs
103145 if : ${{ failure() }}
104146 run : docker compose -f dev/docker-compose-azurite.yml logs
147+ - name : Upload coverage data
148+ uses : actions/upload-artifact@v4
149+ with :
150+ name : coverage-adls
151+ path : .coverage*
152+ include-hidden-files : true
105153
154+ integration-test-gcs :
155+ runs-on : ubuntu-latest
156+ steps :
157+ - uses : actions/checkout@v6
158+ - uses : actions/setup-python@v6
159+ with :
160+ python-version : ' 3.12'
161+ - name : Install UV
162+ uses : astral-sh/setup-uv@v7
163+ with :
164+ enable-cache : true
165+ - name : Install system dependencies
166+ run : sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
167+ - name : Install
168+ run : make install
106169 - name : Run gcs integration tests with coverage
107170 run : COVERAGE=1 make test-gcs
108171 - name : Show debug logs
109172 if : ${{ failure() }}
110173 run : docker compose -f dev/docker-compose-gcs-server.yml logs
174+ - name : Upload coverage data
175+ uses : actions/upload-artifact@v4
176+ with :
177+ name : coverage-gcs
178+ path : .coverage*
179+ include-hidden-files : true
111180
181+ integration-coverage-report :
182+ runs-on : ubuntu-latest
183+ needs : [integration-test, integration-test-s3, integration-test-adls, integration-test-gcs]
184+ steps :
185+ - uses : actions/checkout@v6
186+ - uses : actions/setup-python@v6
187+ with :
188+ python-version : ' 3.12'
189+ - name : Install UV
190+ uses : astral-sh/setup-uv@v7
191+ with :
192+ enable-cache : true
193+ - name : Install dependencies
194+ run : uv sync --group dev
195+ - name : Download all coverage artifacts
196+ uses : actions/download-artifact@v4
197+ with :
198+ pattern : coverage-*
199+ merge-multiple : true
112200 - name : Generate coverage report (75%) # Coverage threshold should only increase over time — never decrease it!
113201 run : COVERAGE_FAIL_UNDER=75 make coverage-report
0 commit comments