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 - tortoisedev steps: - name: Start MySQL run: sudo systemctl start mysql.service - uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }} restore-keys: | ${{ runner.os }}-pip- - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install and configure Poetry run: | pip install -U pip poetry poetry config virtualenvs.create false - name: Install dependencies and check style 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 develop branch if: matrix.tortoise-orm == 'tortoisedev' run: poetry run pip install --upgrade "git+https://github.com/tortoise/tortoise-orm" - 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: make _testall