Support requiredSystemFeatures

[?]
Jun 15, 2015, 2:33 PM
HLSHCK3CP4RB6VO6N44FBHWMXBJYB6XPNWM5EKCKWU3KISU37N3AC

Dependencies

  • [2] IWB3F4Z6 Fail builds with previously failed steps early
  • [3] ENXUSMSV Make concurrency more robust
  • [4] N5O7VEEO Immediately abort builds that require an unsupported system type
  • [5] 5AIYUMTB Basic remote building
  • [6] 22LDPAIP Check non-runnable steps for unsupported system type
  • [*] 24BMQDZA Start of single-process hydra-queue-runner

Change contents

  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 91
    [8.5820]
    [8.5820]
    std::set<std::string> requiredSystemFeatures;
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 138
    [3.136][3.136:169]()
    // FIXME: check features
    [3.136]
    [3.169]
    for (auto & f : mandatoryFeatures)
    if (step->requiredSystemFeatures.find(f) == step->requiredSystemFeatures.end()) return false;
    for (auto & f : step->requiredSystemFeatures)
    if (supportedFeatures.find(f) == supportedFeatures.end()) return false;
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 306
    [3.8944]
    [3.8944]
    for (auto & f : machine->mandatoryFeatures)
    machine->supportedFeatures.insert(f);
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 511
    [2.297][2.297:342]()
    BuildStepStatus buildStepStatus;
    [2.297]
    [2.342]
    BuildStepStatus buildStepStatus = bssFailed;
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 622
    [8.11832]
    [3.515]
    {
    auto i = step->drv.env.find("requiredSystemFeatures");
    if (i != step->drv.env.end())
    step->requiredSystemFeatures = tokenizeString<std::set<std::string>>(i->second);
    }