feat: support psycopg (#425) #423
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: | |
push: | |
branches-ignore: | |
- main | |
pull_request: | |
branches-ignore: | |
- main | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:latest | |
ports: | |
- 5432:5432 | |
env: | |
POSTGRES_PASSWORD: 123456 | |
POSTGRES_USER: postgres | |
options: --health-cmd=pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
tortoise-orm: | |
- tortoise021 | |
- tortoise022 | |
- tortoise023 | |
- tortoise024 | |
# TODO: add dev back when drop python3.8 support | |
# - tortoisedev | |
steps: | |
- name: Start MySQL | |
run: sudo systemctl start mysql.service | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Install and configure Poetry | |
run: | | |
pip install -U pip | |
if [[ "${{ matrix.python-version }}" == "3.8" ]]; then | |
# poetry2.0+ does not support installed by python3.8, but can manage project using py38 | |
python3.12 -m pip install "poetry>=2.0" | |
else | |
pip install "poetry>=2.0" | |
fi | |
poetry env use python${{ matrix.python-version }} | |
- name: Install dependencies and check style | |
run: poetry run make check | |
- name: Install TortoiseORM v0.21 | |
if: matrix.tortoise-orm == 'tortoise021' | |
run: poetry run pip install --upgrade "tortoise-orm>=0.21,<0.22" | |
- name: Install TortoiseORM v0.22 | |
if: matrix.tortoise-orm == 'tortoise022' | |
run: poetry run pip install --upgrade "tortoise-orm>=0.22,<0.23" | |
- name: Install TortoiseORM v0.23 | |
if: matrix.tortoise-orm == 'tortoise023' | |
run: poetry run pip install --upgrade "tortoise-orm>=0.23,<0.24" | |
- name: Install TortoiseORM v0.24 | |
if: matrix.tortoise-orm == 'tortoise024' | |
run: | | |
if [[ "${{ matrix.python-version }}" == "3.8" ]]; then | |
echo "Skip test for tortoise v0.24 as it does not support Python3.8" | |
else | |
poetry run pip install --upgrade "tortoise-orm>=0.24,<0.25" | |
fi | |
- name: Install TortoiseORM develop branch | |
if: matrix.tortoise-orm == 'tortoisedev' | |
run: | | |
if [[ "${{ matrix.python-version }}" == "3.8" ]]; then | |
echo "Skip test for tortoise develop branch as it does not support Python3.8" | |
else | |
poetry run pip uninstall -y tortoise-orm | |
poetry run pip install --upgrade "git+https://github.com/tortoise/tortoise-orm" | |
fi | |
- name: CI | |
env: | |
MYSQL_PASS: root | |
MYSQL_HOST: 127.0.0.1 | |
MYSQL_PORT: 3306 | |
POSTGRES_PASS: 123456 | |
POSTGRES_HOST: 127.0.0.1 | |
POSTGRES_PORT: 5432 | |
run: poetry run make _testall | |
- name: Verify aiomysql support | |
# Only check the latest version of tortoise | |
if: matrix.tortoise-orm == 'tortoise024' | |
run: | | |
poetry run pip uninstall -y asyncmy | |
poetry run make test_mysql | |
poetry run pip install asyncmy | |
env: | |
MYSQL_PASS: root | |
MYSQL_HOST: 127.0.0.1 | |
MYSQL_PORT: 3306 | |
- name: Verify psycopg support | |
# Only check the latest version of tortoise | |
if: matrix.tortoise-orm == 'tortoise024' | |
run: poetry run make test_psycopg | |
env: | |
POSTGRES_PASS: 123456 | |
POSTGRES_HOST: 127.0.0.1 | |
POSTGRES_PORT: 5432 |