-
-
Notifications
You must be signed in to change notification settings - Fork 5
70 lines (65 loc) · 2.51 KB
/
github-actions.yml
File metadata and controls
70 lines (65 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
name: CI
on: [push, pull_request]
jobs:
lint-and-test:
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
sqlalchemy-version: ["<2.0", "default"]
runs-on: ubuntu-latest
services:
postgres:
image: postgres:13.4
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- "5432:5432"
options: >-
--health-cmd="POSTGRES_PASSWORD=eventsourcing pg_isready -U eventsourcing -d eventsourcing_sqlalchemy"
--health-interval="10s"
--health-timeout="5s"
--health-retries="5"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install and set up Poetry
run: make install-poetry
- name: Install packages
run: make install
- name: Downgrade SQLAlchemy
if: ${{ matrix.sqlalchemy-version != 'default' }}
run: poetry@2.2.1 run pip install -U "sqlalchemy${{ matrix.sqlalchemy-version }}"
- name: Downgrade Flask-SQLAlchemy
if: ${{ matrix.sqlalchemy-version != 'default' }}
run: poetry@2.2.1 run pip install -U "flask-sqlalchemy<3.1"
- name: Lint
run: make lint
- name: Setup PostgreSQL database
run: |
PGPASSWORD=postgres psql -c 'CREATE DATABASE eventsourcing_sqlalchemy;' -U postgres -h localhost
PGPASSWORD=postgres psql -c "CREATE USER eventsourcing WITH PASSWORD 'eventsourcing';" -U postgres -h localhost
PGPASSWORD=postgres psql -c "ALTER DATABASE eventsourcing_sqlalchemy OWNER TO eventsourcing;" -U postgres -h localhost
PGPASSWORD=postgres psql eventsourcing_sqlalchemy -c "CREATE SCHEMA myschema AUTHORIZATION eventsourcing" -U postgres -h localhost
- name: Install Microsoft ODBC
run: sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y
- name: Setup MSSQL database
run: |
make start-mssql
sleep 10
make create-mssql-database
make create-mssql-schema
- name: Print SQLAlchemy version
run: poetry@2.2.1 run python -c "import sqlalchemy; print(f'Using sqlalchemy {sqlalchemy.__version__}')"
- name: Run tests
run: make test
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
POSTGRES_HOST: 127.0.0.1
POSTGRES_PORT: 5432