We can use Github Actions and possibly tox, for validating all PR and push by checking test cases. Also, we can run linters like flake8, mypy.