Skip to content

use dynaminc imports to not require unnecessary deps #35

use dynaminc imports to not require unnecessary deps

use dynaminc imports to not require unnecessary deps #35

Workflow file for this run

name: Continuous Integration
on:
pull_request:
jobs:
ci-python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install poetry
uses: abatilo/actions-poetry@v2
- name: Setup a local virtual environment (if no poetry.toml file)
run: |
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
- uses: actions/cache@v3
name: Define a cache for the virtual environment based on the dependencies lock file
with:
path: ./.venv
key: venv-${{ hashFiles('poetry.lock') }}
- name: Install the project dependencies
run: poetry install
- name: Run lint
run: poetry run ruff --output-format=github .
- name: Run unit tests
run: poetry run python manage.py test
integration-tests:
strategy:
matrix:
dialect: [ mysql, postgresql, sqlite, mssql ]
include:
- dialect: mysql
deps: [mysqlclient]
- dialect: postgresql
deps: [psycopg2]
- dialect: sqlite
deps: ''
- dialect: mssql
deps: [mssql-django, pyodbc]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install poetry
uses: abatilo/actions-poetry@v2
- name: Setup a local virtual environment (if no poetry.toml file)
run: |
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
- uses: actions/cache@v3
name: Define a cache for the virtual environment based on the dependencies lock file
with:
path: ./.venv
key: venv-${{ hashFiles('poetry.lock') }}
- name: Install the project dependencies
run: poetry install
- name: Install specific dialect dependencies
if: ${{ matrix.deps != '' }}
run: poetry add ${{ join(matrix.deps, ' ') }}
- name: Install atlas
uses: ariga/setup-atlas@master
- name: Run migrate diff
working-directory: ./tests
run: |
atlas migrate diff --env django --var dialect=${{ matrix.dialect }}
env:
ATLAS_TOKEN: ${{ secrets.ATLAS_TOKEN }}
- name: Verify migrations generated
working-directory: ./tests
run: |
status=$(git status . --porcelain)
if [ -n "$status" ]; then
echo "you need to run 'atlas migrate diff --env django and commit the changes"
echo "$status"
git --no-pager diff
exit 1
fi