2) If you want to keep inside one repository, you can create a directory just for Cypress inside. Inside that directory you can have a package.json and act like its a separate repo(or actually separate it to another repo).
Here is my cypress-template project with already split environments(dev, staging, prod)
You can definitely setup Github actions for any above mentioned structure.
1) When a commit occurs I would run(on both production and test/staging):
Lint
Unit tests
App build
e2e(cypress) test
Additionally, I would set up the project to Lint and unit test locally on every change before even commiting/pushing.
2) If you want to keep inside one repository, you can create a directory just for Cypress inside. Inside that directory you can have a package.json and act like its a separate repo(or actually separate it to another repo).
Here is my cypress-template project with already split environments(dev, staging, prod)
You can definitely setup Github actions for any above mentioned structure.
1) When a commit occurs I would run(on both production and test/staging):
Additionally, I would set up the project to Lint and unit test locally on every change before even commiting/pushing.
1b) Sure.
3) I do not have any experience with Github Actions, sorry :/
I managed to make it working for now. It's for sure not the greatest, but I will hopefully improve it later, with more tests and so.
Thank you for your help and support!