use super::config::is_falsy;
const CI_MARKERS: &[&str] = &[
"GITHUB_ACTIONS",
"GITLAB_CI",
"BUILDKITE",
"CIRCLECI",
"TF_BUILD",
"JENKINS_URL",
"TEAMCITY_VERSION",
"TRAVIS",
"APPVEYOR",
"DRONE",
"BITBUCKET_BUILD_NUMBER",
"CODEBUILD_BUILD_ID",
];
pub(super) fn is_ci(lookup: impl Fn(&str) -> Option<String>) -> bool {
std::iter::once("CI")
.chain(CI_MARKERS.iter().copied())
.any(|name| lookup(name).is_some_and(|value| is_switched_on(&value)))
}
fn is_switched_on(value: &str) -> bool {
!value.is_empty() && !is_falsy(value)
}
#[cfg(test)]
#[path = "ci_tests.rs"]
mod tests;