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
Nix-based integration test environment setup/runner #1324
base: master
Are you sure you want to change the base?
Nix-based integration test environment setup/runner #1324
Conversation
The integration tests import some modules from allmydata, including from the test suite, so they have all of the runtime and unit test dependencies as well as their own.
It's nice to see if things are being built, and if so what.
`pyVersion` is a nixpkgs attribute like "python310" but the executable on PATH is named "python3.10". Fortunately it is also available as "python" and "python3" and since we set up the whole execution environment we know if we use one of these we'll get what we expect.
It needed it for the integration test suite which no longer runs in this environment.
`substituters` and `trusted-public-keys` completely replace any existing configuration (per-user or per-system). `extra-substituters` and `extra-trusted-public-keys` *add* the new configuration to any existing configuration. This lets us continue to get packages from other common caches - such as the one NixOS maintains - while also letting us get packages from the cache we maintain.
@@ -18,8 +18,7 @@ RUN apt-get --quiet update && \ | |||
libffi-dev \ | |||
libssl-dev \ | |||
libyaml-dev \ | |||
virtualenv \ | |||
tor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this a spurious change?
(Or: why does the debian docker image need to exclude Tor for anything "Nix" to work?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, good catch. Indeed, this is not required for the new Nix-based integration tests to work. Instead, I think it is a left-over from when this branch (or maybe an earlier one that I copied some changes from) also removed the Debian/Docker-based integration test job from CI.
So I could either revert this Tor removal or expand this branch to also remove the Debian/Docker integration tests CI job.
And the "circleci: integration" job should really be red here but it isn't yet because the Docker image hasn't been manually re-generated to reflect this Dockerfile change :/
Any preference on which way to take this @meejah ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe both?
Revert it here, but a new PR to expand Nix stuff to run Tor too would be interesting (I think that's approximately what you mean?)
include: | ||
- os: ubuntu-20.04 | ||
python-version: "3.10" | ||
force-foolscap: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean that zero things test with "force-foolscap" enabled now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are two new CircleCI jobs that run the integration tests - one of them passes --force-foolscap
and the other doesn't.
This change only means we're no longer doing a --force-foolscap
integration test job on GitHub Actions.
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4053