Skip to content

Commit

Permalink
Add workflow script for GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
hunyadi committed Jan 8, 2024
1 parent 031a97e commit 0aa49aa
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 7 deletions.
101 changes: 101 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
name: pysqlsync database tests

on:
workflow_dispatch:

defaults:
run:
shell: bash

jobs:
test:
runs-on: ubuntu-latest

services:
postgres:
image: postgres:15-alpine
env:
POSTGRES_PORT: 5432
POSTGRES_USER: levente.hunyadi
POSTGRES_PASSWORD: "<YourStrong@Passw0rd>"
POSTGRES_DB: levente.hunyadi
ports:
- 5432:5432
# set health checks to wait until PostgreSQL has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
--health-start-period 10s
oracle:
image: container-registry.oracle.com/database/free:latest
env:
ORACLE_PWD: "<YourStrong@Passw0rd>"
ports:
- 1521:1521
# set health checks to wait until Oracle has started
options: >-
--health-cmd healthcheck.sh
--health-interval 10s
--health-timeout 5s
--health-retries 5
--health-start-period 10s
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: "<YourStrong@Passw0rd>"
MYSQL_DATABASE: levente_hunyadi
ports:
- 3306:3306
# set health checks to wait until MySQL has started
options: >-
--health-cmd "mysqladmin ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
--health-start-period 10s
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
env:
ACCEPT_EULA: Y
MSSQL_SA_PASSWORD: "<YourStrong@Passw0rd>"
ports:
- 1433:1433
# set health checks to wait until Microsoft SQL Server has started
options: >-
--health-cmd '/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -Q "SELECT 1" -b'
--health-interval 10s
--health-timeout 5s
--health-retries 5
--health-start-period 10s
strategy:
matrix:
python-version: ["3.9", "3.12"]

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
python -m pip --disable-pip-version-check install -r requirements.txt
- name: Build package
run: |
./check.sh
python -m build
- name: Run integration tests
run: |
TEST_INTEGRATION=1 TEST_POSTGRESQL=1 TEST_ORACLE=1 TEST_MYSQL=1 TEST_MSSQL=1 python -m unittest discover
26 changes: 21 additions & 5 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
# core
json_strong_typing >= 0.2.9
json_strong_typing >= 0.3.1
typing_extensions >= 4.8; python_version<"3.12"

# development tools
mypy
flake8

# data export/import
tsv2py
tsv2py >= 0.5.2

# PostgreSQL
asyncpg >= 0.29
asyncpg-stubs >= 0.29

# database drivers
asyncpg >= 0.28
# Oracle
oracledb >= 1.4

# MySQL
aiomysql >= 0.2
aiotrino >= 0.2
PyMySQL[rsa]

# Microsoft SQL Server
pyodbc >= 5.0

# Trino
aiotrino >= 0.2
4 changes: 2 additions & 2 deletions tests/params.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def parameters(self) -> ConnectionParameters:
host="localhost",
port=5432,
username="levente.hunyadi",
password=None,
password="<YourStrong@Passw0rd>",
database="levente.hunyadi",
)

Expand Down Expand Up @@ -84,7 +84,7 @@ def parameters(self) -> ConnectionParameters:
host="localhost",
port=3306,
username="root",
password=None, # "<YourStrong@Passw0rd>",
password="<YourStrong@Passw0rd>",
database="levente_hunyadi",
)

Expand Down

0 comments on commit 0aa49aa

Please sign in to comment.