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

Nix-based integration test environment setup/runner #1324

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

exarkun
Copy link
Member

@exarkun exarkun commented Aug 1, 2023

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.
@exarkun exarkun marked this pull request as ready for review August 2, 2023 13:47
`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.
@coveralls
Copy link
Collaborator

Coverage Status

coverage: 94.526% (-0.03%) from 94.556% when pulling a78b1dc on exarkun:4053.nix-integration-test-runner into d0e1d8e on tahoe-lafs:master.

@@ -18,8 +18,7 @@ RUN apt-get --quiet update && \
libffi-dev \
libssl-dev \
libyaml-dev \
virtualenv \
tor
Copy link
Contributor

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?)

Copy link
Member Author

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 ?

Copy link
Contributor

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
Copy link
Contributor

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?

Copy link
Member Author

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.

@exarkun exarkun requested a review from meejah October 9, 2023 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants