Skip to content

Commit 70158f0

Browse files
committed
turbodbc: Add software test launcher and CI configuration
1 parent e9fddba commit 70158f0

File tree

6 files changed

+98
-6
lines changed

6 files changed

+98
-6
lines changed

.github/dependabot.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ updates:
8888
schedule:
8989
interval: "daily"
9090

91+
- directory: "/by-language/python-turbodbc"
92+
package-ecosystem: "pip"
93+
schedule:
94+
interval: "daily"
95+
9196
- directory: "/by-language/ruby"
9297
package-ecosystem: "bundler"
9398
schedule:
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Python turbodbc
2+
3+
on:
4+
pull_request:
5+
branches: ~
6+
paths:
7+
- '.github/workflows/lang-python-turbodbc.yml'
8+
- 'by-language/python-turbodbc/**'
9+
- '/requirements.txt'
10+
push:
11+
branches: [ main ]
12+
paths:
13+
- '.github/workflows/lang-python-turbodbc.yml'
14+
- 'by-language/python-turbodbc/**'
15+
- '/requirements.txt'
16+
17+
# Allow job to be triggered manually.
18+
workflow_dispatch:
19+
20+
# Run job each night after CrateDB nightly has been published.
21+
schedule:
22+
- cron: '0 3 * * *'
23+
24+
# Cancel in-progress jobs when pushing to the same branch.
25+
concurrency:
26+
cancel-in-progress: true
27+
group: ${{ github.workflow }}-${{ github.ref }}
28+
29+
jobs:
30+
test:
31+
name: "
32+
CrateDB: ${{ matrix.cratedb-version }}
33+
on ${{ matrix.os }}"
34+
runs-on: ${{ matrix.os }}
35+
strategy:
36+
fail-fast: false
37+
matrix:
38+
os: [ 'ubuntu-22.04' ]
39+
cratedb-version: [ 'nightly' ]
40+
41+
services:
42+
cratedb:
43+
image: crate/crate:${{ matrix.cratedb-version }}
44+
ports:
45+
- 4200:4200
46+
- 5432:5432
47+
env:
48+
CRATE_HEAP_SIZE: 4g
49+
50+
steps:
51+
52+
- name: Acquire sources
53+
uses: actions/checkout@v4
54+
55+
- name: Install prerequisites
56+
run: |
57+
cd by-language/python-turbodbc
58+
docker build --tag local/turbodbc-ci --file=dockerfiles/debian.Dockerfile .
59+
60+
- name: Validate by-language/python-turbodbc
61+
run: |
62+
cd by-language/python-turbodbc
63+
docker run --rm --volume=$(pwd):/src --network=host local/turbodbc-ci python3 /src/demo.py

by-language/python-turbodbc/dockerfiles/debian.Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ RUN apt-get install --yes \
3333
libarrow-flight-sql-dev libgandiva-dev libparquet-dev
3434

3535
# Install ultra-fast Unicode routines.
36+
# TODO: The version number here would need to be bumped, in order to validate
37+
# against new upstream releases. The Debian OCI image (this one) has been
38+
# selected to run on CI/GHA.
3639
RUN true \
3740
&& git clone https://github.com/simdutf/simdutf --branch=v6.4.0 \
3841
&& cd simdutf \
Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1-
[tool.black]
2-
line-length = 120
1+
[tool.pytest.ini_options]
2+
minversion = "2.0"
3+
addopts = """
4+
-rfEX -p pytester --strict-markers --verbosity=3
5+
--capture=no
6+
"""
7+
log_level = "DEBUG"
8+
log_cli_level = "DEBUG"
9+
testpaths = ["*.py"]
10+
xfail_strict = true
11+
markers = [
12+
]
313

4-
[tool.isort]
5-
profile = "black"
6-
skip_glob = "**/site-packages/**"
7-
skip_gitignore = false
14+
[tool.ruff]
15+
line-length = 100
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pytest<9

by-language/python-turbodbc/test.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import shlex
2+
import subprocess
3+
import pytest
4+
5+
6+
def run(command: str):
7+
subprocess.check_call(shlex.split(command))
8+
9+
10+
def test_demo():
11+
cmd = "time python demo.py"
12+
run(cmd)

0 commit comments

Comments
 (0)