rusty-ci 0.9.6

A tool to generate buildbot projects from a YAML file
Documentation
extern crate rusty_yaml;
use rusty_yaml::Yaml;

extern crate rusty_ci;
use rusty_ci::Scheduler;

#[test]
fn scheduler_from_yaml() {
    let yaml = Yaml::from(
        r#"xasm-change:
  builders:
    - xasm-build
    - xasm-test

  branch: ".*"
  triggers:
    - '.*\.py'
    - '.*\.cpp'
    - '.*Makefile'
    - '.*CMakeLists.txt'
  password: "ok to test"
"#,
    )
    .get_section("xasm-change")
    .unwrap();

    let scheduler = Scheduler::from(yaml);
    let output = scheduler.to_string();

    assert_eq!(
        output.trim(),
        "@util.renderer\ndef xasm_change_triggers(props):\n    builders = [\"xasm-build\", \"xasm-test\"]\n\n    triggers = [\".*\\\\.py\", \".*\\\\.cpp\", \".*Makefile\", \".*CMakeLists.txt\"]\n\n    if not is_whitelisted(props, \"ok to test\"):\n        print(\'NOT WHITELISTED!!!\')\n        return []\n\n    for f in props.files:\n        for regex in triggers:\n            print(\"FILE:   \", f)\n            print(\"TRIGGER:\", regex)\n            if re.fullmatch(regex, str(f)):\n                return builders\n\n    return []\n\n\nxasm_change = schedulers.AnyBranchScheduler(name=\"xasm_change\",\n    change_filter=util.ChangeFilter(branch_re=\".*\"),\n    builderNames=xasm_change_triggers)\n\nc[\'schedulers\'].append(xasm_change)\n\nc[\'schedulers\'].append(schedulers.ForceScheduler(name=\"force_xasm_change\",\n    builderNames=[\"xasm-build\", \"xasm-test\"]))"
    );
}