Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rephrase GitHub Actions in terms of Nox actions
This reduces duplication of GitHub vs local/Nox CI actions by changing the GitHub actions to call out to Nox. That said, this is not a full-fledged embrace of the Nox way: Nox will usually install dependencies in its own virtualenvs. However, these would come in addition to Poetry's virtualenv, and we have not currently set up caching for anything but the Poetry virtualenvs. Work around this by setting up the appropriate Python version and installing all the necessary dependencies in the Poetry virtualenv (i.e. outside of Nox). We can then run Nox with --no-venv --no-install to explicitly disable the Nox virtualenvs (which also disables the Python version parametrization inside Nox). For this to work, we also need to adjust our install_groups() helper in noxfile.py to detect when it's running without Nox virtualenvs and skip installation in this case. In summary, this adds Nox into the Github Actions mix, but avoids adding an extra layer of virtualenvs and also keeps the same useful caching of the Poetry virtualenvs. The downside is that we run the Nox sessions in a slightly different way compared to running Nox in our local development environment: We do Python version parametrization and dependency installation the Github Actions + Poetry way, and then use Nox merely to abstract away the actual commands run in each CI action. Time will tell if this setup is stable enough to run without issues. We can always revert to duplicating Nox actions inside GitHub Actions later. We can even consider generating .github/workflows/ci.yaml semi- automatically from the sessions defined in noxfile.py.
- Loading branch information