-
Notifications
You must be signed in to change notification settings - Fork 85
163 lines (158 loc) · 5.2 KB
/
conda.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
name: Build and test with conda
on:
push:
pull_request:
schedule:
- cron: '47 6 * * *'
# Automatically stop old builds on the same branch/PR
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -el {0}
jobs:
# TODO:
#linux-release:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# environment: ["py310-pa13"]
# steps:
# - name: Publish package
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') && github.repository == 'blue-yonder/turbodbc'
# uses: pypa/[email protected]
# with:
# user: __token__
# password: ${{ secrets.PYPI_UPLOAD }}
# packages_dir: result/dist
linux-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
environment: ["py310-pa13"]
services:
postgres:
image: postgres:11
options: "--hostname postgres"
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
POSTGRES_DB: test_db
mysql:
# test do not run with a newer mysql at the moment
image: mysql:5.6
# command: --default-authentication-plugin=mysql_native_password
env:
MYSQL_ROOT_PASSWORD: StrongPassword1
MYSQL_USER: mysqluser
MYSQL_PASSWORD: password
MYSQL_DATABASE: test_db
ports:
- 3306:3306
mssql:
image: mcr.microsoft.com/mssql/server:2017-latest
env:
ACCEPT_EULA: Y
SA_PASSWORD: StrongPassword1
ports:
- 1433:1433
steps:
- name: Checkout branch
uses: actions/checkout@v4
with:
submodules: true
- name: Fetch full git history
run: git fetch --prune --unshallow
- name: Set up pixi
uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659
with:
environments: ${{ matrix.environment }}
- name: Build and test
shell: pixi run bash -e {0}
env:
# TURBODBC_TEST_CONFIGURATION_FILES: "tests/query_fixtures_postgresql.json,query_fixtures_mssql.json,query_fixtures_mysql.json"
TURBODBC_TEST_CONFIGURATION_FILES: "tests/query_fixtures_postgresql.json"
run: |
python -m build
python -m pip install dist/*.whl
ls -l $(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')
python -c 'import turbodbc'
export ODBCSYSINI=$(pwd)/odbc_test_linux
sed -i "s;CONDA_PREFIX;${CONDA_PREFIX};g" odbc_test_linux/odbcinst.ini
pytest
macos-tests:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
environment: ["py310-pa13"]
steps:
- name: Checkout branch
uses: actions/checkout@v4
with:
submodules: true
- name: Fetch full git history
run: git fetch --prune --unshallow
- name: Set up pixi
uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659
with:
environments: ${{ matrix.environment }}
- name: Setup postgres
shell: pixi run bash -e {0}
run: |
initdb -D mylocal_db
pg_ctl -D mylocal_db -l logfile start
- name: Build and test
shell: pixi run bash -e {0}
run: |
python -m build
python -m pip install dist/*.whl
ls -l $(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')
python -c 'import turbodbc'
pytest
windows-pixi-tests:
defaults:
run:
shell: cmd /C call {0}
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
environment: ["py310-pa13"]
steps:
- name: Create SQL Server
shell: pwsh
run: |
Write-Host "Downloading"
Import-Module BitsTransfer
Start-BitsTransfer -Source "https://download.microsoft.com/download/3/8/d/38de7036-2433-4207-8eae-06e247e17b25/SqlLocalDB.msi" -Destination SqlLocalDB.msi
Write-Host "Installing"
Start-Process -FilePath "SqlLocalDB.msi" -Wait -ArgumentList "/qn", "/norestart", "/l*v SqlLocalDBInstall.log", "IACCEPTSQLLOCALDBLICENSETERMS=YES"
sqlcmd -S '(localdb)\MSSQLLocalDB' -Q 'CREATE DATABASE test_db' -l 60
- name: Configure ODBC Data Source
run: |
odbcconf /a {CONFIGDSN "ODBC Driver 17 for SQL Server" "DSN=MSSQL|Server=(localdb)\MSSQLLocalDB|Database=test_db|Trusted_Connection=Yes"}
if %errorlevel% neq 0 exit /b %errorlevel%
- name: Checkout branch
uses: actions/checkout@v4
with:
submodules: true
- name: Fetch full git history
run: git fetch --prune --unshallow
- name: Set up pixi
uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659
with:
environments: ${{ matrix.environment }}
- name: Build wheel
shell: pixi run pwsh -Command {0}
run: python -m build
- name: Install and test wheel
shell: pixi run pwsh -Command {0}
run: |
python -m pip install dist/*.whl
pytest