diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/app.d | 16 | ||||
| -rw-r--r-- | source/merge.d | 6 | 
2 files changed, 18 insertions, 4 deletions
diff --git a/source/app.d b/source/app.d index 1fc3e32..4344492 100644 --- a/source/app.d +++ b/source/app.d @@ -5,6 +5,7 @@ import std.format;  import std.file;  import std.typecons;  import std.path : buildPath, chainPath, absolutePath; +import std.range : enumerate;  import conda;  import merge;  import session; @@ -100,20 +101,33 @@ int main(string[] args) {          output_dir.mkdirRecurse;      } +    conda.activate(session.delivery);      writeln("Creating YAML dump: " ~ dumpfile_yaml);      conda.dump_env_yaml(dumpfile_yaml);      writeln("Creating explicit dump: " ~ dumpfile_explicit);      conda.dump_env_explicit(dumpfile_explicit);      writeln("Creating pip-freeze dump: " ~ dumpfile_freeze);      conda.dump_env_freeze(dumpfile_freeze); +    conda.deactivate();      if (session.run_tests) {          int failures = 0;          string testdir = buildPath(output_dir, "testdir");          testable_t[] pkgs = testable_packages(conda, session.conda_requirements, session.test_filter_git_orgs); -        foreach (pkg; pkgs) { +        foreach (i, pkg; pkgs.enumerate(0)) { +            string tmpenv = format("%04d_%s", i, session.delivery); +            if(conda.run("create -n " ~ tmpenv ~ " --clone " ~ session.delivery)) { +                return false; +            } +            conda.activate(tmpenv); +              failures += integration_test(session, conda, testdir, pkg); + +            conda.deactivate(); +            if(conda.run("env remove -n " ~ tmpenv)) { +                return false; +            }          }          if (failures) { diff --git a/source/merge.d b/source/merge.d index 72805d6..528582c 100644 --- a/source/merge.d +++ b/source/merge.d @@ -55,7 +55,7 @@ string[string][] dmfile(string[] packages) {  bool env_combine(ref Session_t session, ref Conda conda) {      if (indexOf(session.base_spec, "://", 0) < 0 && !session.base_spec.exists) { -        throw new Exception(session.base_spec~ " does not exist"); +        throw new Exception(session.base_spec ~ " does not exist");      }      int retval = 0; @@ -67,7 +67,7 @@ bool env_combine(ref Session_t session, ref Conda conda) {          return false;      } -    conda.activate(session.delivery); +    //conda.activate(session.delivery);      writeln("Delivery merge specification:");      foreach (record; dmfile(session.conda_requirements)) { @@ -78,7 +78,7 @@ bool env_combine(ref Session_t session, ref Conda conda) {          specs ~= record["fullspec"];      } -    if (conda.run("install " ~ conda.multiarg("-c", conda.channels) +    if (conda.run("install -n " ~ session.delivery ~ " " ~ conda.multiarg("-c", conda.channels)                    ~ " " ~ safe_install(specs))) {          return false;      }  | 
