#jenkins #json-api #redux #job #build #github #bindings

jenkins_api_redux

Jenkins JSON API 的绑定;https://github.com/mockersf/jenkins-api.rs 的分支

2 个版本

0.1.1 2023年4月26日
0.1.0 2023年4月26日

#14 in #jenkins

MIT 许可证

155KB
3.5K SLoC

jenkins-api-redux.rs 许可证: MIT 构建状态 覆盖率状态 发布文档 Crate

注意:这个包是 https://github.com/mockersf/jenkins-api.rs 的分支。它试图完全实现 Jenkins 兼容性(Jenkins API 密钥和异步支持)。

目前正在开发中


这个包提供了对 Jenkins JSON API 的绑定。

示例

use jenkins_api_redux::JenkinsBuilder;
use jenkins_api_redux::build::BuildStatus;
use jenkins_api_redux::job::BuildableJob;

fn main() {
    let jenkins = JenkinsBuilder::new("http://127.0.0.1:8080")
        .with_user("user", Some("password"))
        .build().unwrap();

    let job = jenkins.get_job("job name").unwrap();

    let to_build = if let Some(short_build) = job.last_build.clone() {
        let build = short_build.get_full_build(&jenkins).unwrap();
        println!(
            "last build for job {} at {} was {:?}",
            job.name, build.timestamp, build.result
        );
        if let Some(result) = build.result {
            result != BuildStatus::Success
        } else {
            true
        }
    } else {
        println!("job {} was never built", job.name);
        true
    };

    if to_build {
        println!("triggering a new build");
        job.as_variant::<jenkins_api_redux::job::FreeStyleProject>().unwrap()
            .build(&jenkins).unwrap();
    }
}

依赖项

~5–20MB
~308K SLoC