mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-24 23:06:16 +02:00
Merge pull request #11255 from DeterminateSystems/test-s3-binary-cache-store
Add a VM test for S3BinaryCacheStore
This commit is contained in:
commit
1fce591cbc
3 changed files with 66 additions and 1 deletions
|
@ -146,4 +146,6 @@ in
|
||||||
functional_root = runNixOSTestFor "x86_64-linux" ./functional/as-root.nix;
|
functional_root = runNixOSTestFor "x86_64-linux" ./functional/as-root.nix;
|
||||||
|
|
||||||
user-sandboxing = runNixOSTestFor "x86_64-linux" ./user-sandboxing;
|
user-sandboxing = runNixOSTestFor "x86_64-linux" ./user-sandboxing;
|
||||||
|
|
||||||
|
s3-binary-cache-store = runNixOSTestFor "x86_64-linux" ./s3-binary-cache-store.nix;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Test ‘nix-copy-closure’.
|
# Test ‘nix-copy-closure’.
|
||||||
|
|
||||||
{ lib, config, nixpkgs, hostPkgs, ... }:
|
{ lib, config, nixpkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
pkgs = config.nodes.client.nixpkgs.pkgs;
|
pkgs = config.nodes.client.nixpkgs.pkgs;
|
||||||
|
|
63
tests/nixos/s3-binary-cache-store.nix
Normal file
63
tests/nixos/s3-binary-cache-store.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{ lib, config, nixpkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
pkgs = config.nodes.client.nixpkgs.pkgs;
|
||||||
|
|
||||||
|
pkgA = pkgs.cowsay;
|
||||||
|
|
||||||
|
accessKey = "BKIKJAA5BMMU2RHO6IBB";
|
||||||
|
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
|
||||||
|
env = "AWS_ACCESS_KEY_ID=${accessKey} AWS_SECRET_ACCESS_KEY=${secretKey}";
|
||||||
|
|
||||||
|
storeUrl = "s3://my-cache?endpoint=http://server:9000®ion=eu-west-1";
|
||||||
|
|
||||||
|
in {
|
||||||
|
name = "nix-copy-closure";
|
||||||
|
|
||||||
|
nodes =
|
||||||
|
{ server =
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{ virtualisation.writableStore = true;
|
||||||
|
virtualisation.additionalPaths = [ pkgA ];
|
||||||
|
environment.systemPackages = [ pkgs.minio-client ];
|
||||||
|
nix.extraOptions = "experimental-features = nix-command";
|
||||||
|
services.minio = {
|
||||||
|
enable = true;
|
||||||
|
region = "eu-west-1";
|
||||||
|
rootCredentialsFile = pkgs.writeText "minio-credentials-full" ''
|
||||||
|
MINIO_ROOT_USER=${accessKey}
|
||||||
|
MINIO_ROOT_PASSWORD=${secretKey}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [ 9000 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
client =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{ virtualisation.writableStore = true;
|
||||||
|
nix.extraOptions = "experimental-features = nix-command";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = { nodes }: ''
|
||||||
|
# fmt: off
|
||||||
|
start_all()
|
||||||
|
|
||||||
|
# Create a binary cache.
|
||||||
|
server.wait_for_unit("minio")
|
||||||
|
|
||||||
|
server.succeed("mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} --api s3v4")
|
||||||
|
server.succeed("mc mb minio/my-cache")
|
||||||
|
|
||||||
|
server.succeed("${env} nix copy --to '${storeUrl}' ${pkgA}")
|
||||||
|
|
||||||
|
# Copy a package from the binary cache.
|
||||||
|
client.fail("nix path-info ${pkgA}")
|
||||||
|
|
||||||
|
client.succeed("${env} nix store info --store '${storeUrl}' >&2")
|
||||||
|
|
||||||
|
client.succeed("${env} nix copy --no-check-sigs --from '${storeUrl}' ${pkgA}")
|
||||||
|
|
||||||
|
client.succeed("nix path-info ${pkgA}")
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in a new issue