You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测Gradle任务是否在Jenkins/CircleCI等CI环境中运行

在Gradle中检测本地/CI运行环境的通用方案

要判断Gradle任务是在本地还是CI环境运行,核心思路是检查CI平台自动设置的专属环境变量——绝大多数主流CI工具都会在构建时注入特定的环境变量,我们可以通过这些变量来识别环境。

通用检测方案(覆盖多数CI)

很多CI平台都会设置CI或CONTINUOUS_INTEGRATION这两个通用环境变量,值通常为true或1。可以用这个作为基础判断:

def isCiEnvironment() {
    return System.getenv("CI") != null || 
           System.getenv("CONTINUOUS_INTEGRATION") != null
}

// 调用示例
task checkEnv {
    doLast {
        if (isCiEnvironment()) {
            println "当前处于CI环境"
        } else {
            println "当前处于本地环境"
        }
    }
}

针对主流CI平台的精准检测

如果需要识别具体是哪个CI平台(比如Jenkins、GitHub Actions等),可以检查各平台的专属环境变量:

  • Jenkins:会设置JENKINS_HOME或BUILD_NUMBER,判断逻辑:System.getenv("JENKINS_HOME") != null
  • GitHub Actions:设置GITHUB_ACTIONS,值为true
  • GitLab CI:设置GITLAB_CI,值为true
  • TeamCity:设置TEAMCITY_VERSION(也就是你提到的专属检测变量)
  • CircleCI:设置CIRCLECI,值为true

可以整合这些变量,写一个更全面的检测方法:

def isCiEnvironment() {
    // 列出主流CI的专属环境变量
    def ciEnvVars = [
        "CI", 
        "CONTINUOUS_INTEGRATION",
        "JENKINS_HOME", 
        "BUILD_NUMBER",
        "GITHUB_ACTIONS",
        "GITLAB_CI",
        "TEAMCITY_VERSION",
        "CIRCLECI"
    ]
    // 只要有一个变量存在,就判定为CI环境
    return ciEnvVars.any { System.getenv(it) != null }
}

如果需要区分具体CI平台,还可以扩展出识别方法:

def getCurrentCiPlatform() {
    if (System.getenv("JENKINS_HOME")) {
        return "Jenkins"
    } else if (System.getenv("GITHUB_ACTIONS")) {
        return "GitHub Actions"
    } else if (System.getenv("GITLAB_CI")) {
        return "GitLab CI"
    } else if (System.getenv("TEAMCITY_VERSION")) {
        return "TeamCity"
    } else if (System.getenv("CIRCLECI")) {
        return "CircleCI"
    } else if (System.getenv("CI")) {
        return "未知CI平台"
    } else {
        return "本地环境"
    }
}

// 调用示例
task printPlatform {
    doLast {
        println "当前运行环境:${getCurrentCiPlatform()}"
    }
}

注意事项

  1. 小众CI平台可能不支持通用CI变量,这时可以查对应平台的官方文档,找到它专属的环境变量来判断
  2. 本地开发时,尽量不要手动设置上述CI相关的环境变量,避免误判环境

内容的提问来源于stack exchange,提问作者user2699165

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:33:35