-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement CI in github actions #1
Conversation
c2e7d4a
to
87508ea
Compare
Codecov Report
@@ Coverage Diff @@
## master #1 +/- ##
=========================================
Coverage ? 83.56%
=========================================
Files ? 12
Lines ? 2051
Branches ? 332
=========================================
Hits ? 1714
Misses ? 266
Partials ? 71
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report at Codecov.
|
39a1771
to
3f8227e
Compare
5c5005d
to
b7f95f8
Compare
b7f95f8
to
b2ebdf3
Compare
4c54dbf
to
0ec299d
Compare
- release publishing is not currently implemented - drop python 3.5 and 3.6 support - run tests for python 3.7 to 3.9 - python 3.10 tests fail due to removed `loop` argument, therefore currently disabled - this is only an issue in the test suite afaik - python 3.11 tests currently fail to install `uvloop`, therefore currently disabled - see MagicStack/uvloop#450 - run tests for MySQL 5.7 and 8.0 `latest` - run tests for MariaDB 10.2 to 10.7 and `latest` - bump dev/test dependencies - migrate deprecated test syntax - remove docker integration from tests, for automated builds this is now covered by github actions - async test methods have been broken before already https://app.travis-ci.com/github/aio-libs/aiomysql/jobs/448298144#L2340 - each matrix job is currently limited to 15 minutes total execution, it should be safe to expect the tests to be completed by then. in my tests (with pip cache) the tests usually run about 1.5 minutes. - pytest job is soft limited to 5 minutes, hard limited to 6 minutes to avoid test hangs. in my tests this is typically completed in less than a minute. in broken tests we can easily deadlock otherwise and the test would otherwise keep running for hours. - port fix for `test_issue_3` for MySQL 8.0 compatibility from PyMySQL/PyMySQL#658 - `test_connection_gone_away` fails on MySQL 8.0 - `test_drop_connection_if_timedout` fails on MySQL 8.0, test was patched to close the pool to avoid blocking forever
0ec299d
to
1bd4866
Compare
- 'mysql:8.0' | ||
- 'mysql:latest' | ||
- 'mariadb:10.2' | ||
- 'mariadb:10.3' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you really want to check against so many mariadb instances?
If yes -- it's ok but I suspect the slow execution time.
Maybe some versions can be dropped?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
currently - with all tests duplicated to include a PYTHONASYNCIODEBUG=1
run - this has a total runtime of 6m 24s.
with the PYTHONASYNCIODEBUG=1
runs removed i think all tests will currently be able to run in parallel, which should be able to cut this down a bit further.
to me this seems acceptable?
i've selected all currently supported database versions to ensure full coverage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, agree
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i removed the latest
tags though as they're redundant with the latest explicit version and won't cause unexpected test failures due to new db version releases.
merged upstream at aio-libs#645 |
loop
argument, therefore currently disableduvloop
, therefore currently disabledlatest
latest
in my tests this is typically completed in less than a minute.
in broken tests we can easily deadlock otherwise and the test would otherwise keep running for hours.
test_issue_3
for MySQL 8.0 compatibility from test: issue3 MySQL-8.0 now returns NULL(None) for timestamp PyMySQL/PyMySQL#658test_connection_gone_away
fails on MySQL 8.0test_drop_connection_if_timedout
fails on MySQL 8.0, test was patched to close the pool to avoid blocking foreveropen questions:
PYTHONASYNCIODEBUG=1
?