ci_env 0.4.1

Detect CI information from the environment.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::api::{opt_var, var, CiEnvironment, CiProvider};

// https://developer.apple.com/documentation/xcode/environment-variable-reference
pub fn create_environment() -> CiEnvironment {
    CiEnvironment {
        base_branch: opt_var("CI_PULL_REQUEST_TARGET_BRANCH"),
        base_revision: opt_var("CI_PULL_REQUEST_TARGET_COMMIT"),
        branch: opt_var("CI_PULL_REQUEST_SOURCE_BRANCH").unwrap_or_else(|| var("CI_BRANCH")),
        env_prefix: Some("CI_".into()),
        head_revision: opt_var("CI_PULL_REQUEST_SOURCE_COMMIT"),
        id: var("CI_BUILD_ID"),
        provider: CiProvider::XcodeCloud,
        request_id: opt_var("CI_PULL_REQUEST_NUMBER"),
        request_url: opt_var("CI_PULL_REQUEST_HTML_URL"),
        revision: var("CI_COMMIT"),
        url: opt_var("CI_BUILD_URL"),
    }
}