Skip to content

Move to meson-python #1036

Move to meson-python

Move to meson-python #1036

Workflow file for this run

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:8.3
# 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: Install MS SQL Drivers
run: |
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
wget -q https://packages.microsoft.com/config/debian/9/prod.list -O- | sudo tee -a /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
ACCEPT_EULA=Y sudo apt-get install msodbcsql17 mssql-tools
ls -l /opt/microsoft/msodbcsql17/lib64/
sudo odbcinst -i -d -f /opt/microsoft/msodbcsql17/etc/odbcinst.ini
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'StrongPassword1' -Q 'CREATE DATABASE test_db'
- 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,tests/query_fixtures_mysql.json,tests/query_fixtures_mssql.json"
TURBODBC_TEST_CONFIGURATION_FILES: "tests/query_fixtures_postgresql.json,tests/query_fixtures_mssql.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 test_db --username="runner" --pwfile=<(printf "%s\n" "password")
pg_ctl -D test_db -l logfile start
createdb --owner=runner test_db
- name: Build and test
shell: pixi run bash -e {0}
env:
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"])')
export ODBCSYSINI=$(pwd)/odbc_test_osx
sed -i "s;CONDA_PREFIX;${CONDA_PREFIX};g" odbc_test_osx/odbcinst.ini
python -c 'import turbodbc'
ulimit -c unlimited
pytest -sv || (lldb -o "target create python --core $(ls /cores/core*)" -o "bt all" -o "quit"; exit 1)
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 }}
- run: pixi run meson setup builddir
- run: type builddir\meson-logs\meson-log.txt
if: always()
- run: pixi run ninja -C builddir
- name: Build wheel
run: pixi run python -m build
- name: Install wheel
shell: pixi run pwsh -Command {0}
run: |
python -m pip install dist/*.whl
- name: Test
run: pixi run pytest -sv