mirror of
https://github.com/Hopiu/django-modeltranslation.git
synced 2026-03-16 22:10:31 +00:00
94 lines
2.9 KiB
YAML
94 lines
2.9 KiB
YAML
# Docs:
|
|
# - https://docs.github.com/en/actions/guides/about-service-containers
|
|
# Example
|
|
# - https://github.com/actions/example-services/blob/main/.github/workflows/postgres-service.yml
|
|
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
jobs:
|
|
Check:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
strategy:
|
|
matrix:
|
|
python: ["3.10"]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python ${{ matrix.python }}
|
|
uses: actions/setup-python@v3
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
- name: Install linters
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install ruff==0.0.292 black==23.9.1
|
|
- name: Run linters
|
|
run: |
|
|
ruff check modeltranslation
|
|
black --check modeltranslation *.py
|
|
- name: Test package install
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python setup.py sdist
|
|
pip install dist/*
|
|
|
|
Test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python: ["3.8", "3.9", "3.10", "3.11"]
|
|
django: ["3.2", "4.0", "4.2"]
|
|
database: ["sqlite", "postgres", "mysql"]
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
DJANGO: ${{ matrix.django }}
|
|
DB: ${{ matrix.database }}
|
|
DB_HOST: 127.0.0.1
|
|
MYSQL_DATABASE: "modeltranslation"
|
|
MYSQL_USER: "root"
|
|
MYSQL_PASSWORD: "password"
|
|
POSTGRES_DB: "modeltranslation"
|
|
POSTGRES_USER: "modeltranslation"
|
|
POSTGRES_PASSWORD: "modeltranslation"
|
|
services:
|
|
mariadb:
|
|
image: mariadb:10
|
|
ports:
|
|
- 3306:3306
|
|
env:
|
|
MYSQL_DATABASE: "modeltranslation"
|
|
MYSQL_USER: "modeltranslation"
|
|
MYSQL_PASSWORD: "password"
|
|
MYSQL_ROOT_PASSWORD: "password"
|
|
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
|
postgres:
|
|
image: postgres
|
|
ports:
|
|
- 5432:5432
|
|
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
|
env:
|
|
POSTGRES_DB: "modeltranslation"
|
|
POSTGRES_USER: "modeltranslation"
|
|
POSTGRES_PASSWORD: "modeltranslation"
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python ${{ matrix.python }}
|
|
uses: actions/setup-python@v3
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
- name: Set up env
|
|
run: |
|
|
if [[ $DB == mysql ]]; then
|
|
pip install -q mysqlclient
|
|
fi
|
|
if [[ $DB == postgres ]]; then
|
|
pip install -q psycopg2-binary
|
|
fi
|
|
pip install typing-extensions coverage pytest pytest-django pytest-cov parameterized $(./get-django-version.py ${{ matrix.django }})
|
|
- name: Run tests
|
|
run: |
|
|
pytest --cov-report term
|