Skip to content

alter postgresql create db command in workflow #104

alter postgresql create db command in workflow

alter postgresql create db command in workflow #104

Workflow file for this run

name: UtilMeta Common CI
# run before every pull request and every push
on:
pull_request:
paths:
- '.github/workflows/**'
- 'tests/**'
- 'utilmeta/**'
push:
paths:
- '.github/workflows/**'
- 'tests/**'
- 'utilmeta/**'
jobs:
test:
strategy:
fail-fast: false
matrix:
# os: [macos-latest, windows-latest, ubuntu-latest]
# python-version: ["3.8", "3.11", "3.13"]
# django-version: ["4.1", "5.0", "5.1"]
include:
- os: ubuntu-latest
python-version: "3.13"
django-version: "5.1"
name: "3.13 on Linux"
# - os: windows-latest
# python-version: "3.13"
# django-version: "5.1"
# name: "3.13 on Windows"
# - os: macos-latest
# python-version: "3.13"
# django-version: "5.1"
# name: "3.13 on Mac"
- os: ubuntu-latest
python-version: "3.11"
django-version: "5.0"
name: "3.11 (django 5.0)"
- os: ubuntu-latest
python-version: "3.10"
django-version: "4.2"
name: "3.10 (django 4.2)"
- os: ubuntu-latest
python-version: "3.9"
django-version: "4.1"
name: "3.9 (django 4.1)"
- os: ubuntu-latest
python-version: "3.8"
django-version: "4.0"
name: "3.8 (django 4.0)"
- os: ubuntu-latest
python-version: "3.8"
django-version: "3.0"
name: "Django compat earliest (3.0)"
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
services:
postgres:
image: postgres:17
ports:
- 5432:5432
env:
POSTGRES_USER: test_user
POSTGRES_PASSWORD: test-tmp-password
POSTGRES_DB: utilmeta_test_db
options: >-
--health-cmd="pg_isready -U test_user"
--health-interval=5s
--health-timeout=5s
--health-retries=5
mysql:
image: mysql:8
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: mysqlrootpassword
MYSQL_USER: test_user
MYSQL_PASSWORD: test-tmp-password
MYSQL_DATABASE: utilmeta_test_db
options: >-
--health-cmd="mysqladmin -u test_user -p${MYSQL_PASSWORD} ping"
--health-interval=5s
--health-timeout=5s
--health-retries=5
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest pytest-cov pytest-asyncio
pip install jwcrypto psutil jwt
pip install utype
pip install databases[aiosqlite] redis aioredis
pip install django==${{ matrix.django-version }}
pip install flask apiflask fastapi sanic[ext] tornado aiohttp uvicorn httpx requests python-multipart
- name: Install conditional dependencies
if: ${{ matrix.django-version >= '4.0'}}
run: |
pip install django-ninja djangorestframework drf-spectacular
- name: Run lint
run: |
flake8 utilmeta --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Wait for PostgreSQL
run: |
for i in {1..30}; do
if pg_isready -h localhost -p 5432 -U test_user; then
echo "PostgreSQL is ready!"
break
fi
echo "Waiting for PostgreSQL to be ready..."
sleep 5
done
PGPASSWORD=test-tmp-password psql -h localhost -p 5432 -U test_user -c "CREATE DATABASE utilmeta_test_ops_db;"
- name: Wait for MySQL
run: |
for i in {1..30}; do
if mysqladmin -h localhost -P 3306 -u test_user -p${MYSQL_PASSWORD} ping --silent; then
echo "MySQL is ready!"
break
fi
echo "Waiting for MySQL to be ready..."
sleep 5
done
mysql -h localhost -P 3306 -u test_user -p${MYSQL_PASSWORD} -e "CREATE DATABASE utilmeta_test_ops_db;"
- name: Run tests
run: |
pytest tests --cov=./utilmeta
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3