Use Python template in facade
Summary of Changes
Adds the Python project template to this repo and updates this repo to ensure that the new CI pipelines/tests run successfully.
Checklist
-
The MR has a clear and concise title -
Code is self-documented and follows style guidelines. -
Automated tests are written and pass successfully. -
Regression tests (e.g. manually triggered system tests, manual GUI/tool tests, ...) are performed to make sure the MR does not break anything (when applicable) -
Readme file is present and up-to-date.
Documentation Updates
Additional Notes
I've tried to make as few changes as possible to the template, but I've had to make the following noteworthy deviations:
- I push the source image from the linting CI stage. This is because my unit-test stage includes extra contents in its Docker image for testing the UI via Selenium that shouldn't be included in future stages that pull the source image. This may be a good change to push back to the template, as if both images are being built in the same way, unlike here, then we could just pull the source image for unit-tests instead of rebuilding it.
- I've removed the build-image stage since it doesn't currently have any utility for this repo.
- I've added an extra dependency group for installing Selenium so that you can choose to install it separately from the rest of the dev dependencies (mainly because it has an external dependency in firefox that needs to be installed). If it's not installed, then the associated UI test should be skipped.
Closes #17 (closed)