-
Notifications
You must be signed in to change notification settings - Fork 81
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
Add support for nix store remote copying #404
Conversation
@benradf I believe it would make sense to include in this PR a docker/vagrant setup to test the remote build on the CI? |
That sounds like a great idea actually, though I'm not entirely sure how to go about it. What were you thinking? Build a docker image as part of CI, run it, and test that it can be used as a remote executor? |
I was thinking to have a container that will play the role of the nix server. We could run this on the CI so we can test the code path that is enabled when we specify a remote nix server. |
3182de5
to
39e0176
Compare
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 add something like ${{ matrix.withNixRemote && '- NixRemote' || '' }}
to the end of the job name in workflow.yaml
to distinguish jobs on the withNixRemote
dimension.
Otherwise, looks good 👍
edba2f5
to
86a1306
Compare
Updated the title. We'll need to adjust the required checks on Github with the new name. |
This is a requirement in order to make Bazel remote execution work. Without it it's not guaranteed that any necessary nix paths will be available during the build. Any local derivation will be copied over to a specified remote nix server which will also as a Bazel executor. This way any nix paths required during the build, will be available. The user will have to provide the `BAZEL_NIX_REMOTE` environment variable. This should be the name of any entry on the SSH_CONFIG file where all the authentication details are provided. e.g ```bash $ export BAZEL_NIX_REMOTE=nix-server $ cat ~/.ssh/config Host nix-server Hostname 1.2.3.4 IdentityFile ~/.ssh/nix-server Port 2222 User nix-user ``` This was done in order to simplify the processes of authentication and keep the number of configuration options to a minimum.
86a1306
to
df9f825
Compare
df9f825
to
7bb3ddd
Compare
This is a requirement in order to make Bazel remote execution work. Without it it's not guaranteed that any necessary nix paths will be available during the build.
Any local derivation will be copied over to a specified remote nix server which will also as a Bazel executor. This way any nix paths required during the build, will be available.
The user will have to provide the
BAZEL_NIX_REMOTE
environment variable. This should be the name of any entry on the SSH_CONFIG file where all the authentication details are provided.e.g
This was done in order to simplify the processes of authentication and keep the number of configuration options to a minimum.