Skip to content
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

Using Nox inside our GitHub CI actions #40

Merged
merged 1 commit into from
Jan 10, 2023
Merged

Commits on Jan 9, 2023

  1. 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.
    jherland committed Jan 9, 2023
    Configuration menu
    Copy the full SHA
    97541a4 View commit details
    Browse the repository at this point in the history