如何知道Gradle任务是否在CI中运行(Jenkins/CircleCI/等)

kyxcudwk  于 2023-06-28  发布在  Jenkins
关注(0)|答案(1)|浏览(100)

我想检测Gradle任务是在build. gradle中的本地env还是CI env上运行。
有没有合适的方法,比如System.getenv(“some ci key”)!=null可以帮助我知道环境变量吗?
像这个问题(How to detect if a Gradle build is running on TeamCity?)提到的,但是它只能检测teamcity,我想知道它能不能检测Jenkins或者其他CI。

tzxcd3kk

tzxcd3kk1#

您希望从Gradle任务中确定Gradle是否正在CI计算机上运行。
CI环境变量是大多数CI计算机上存在的quasi-standard。这可以在Gradle脚本中检查:

providers.environmentVariable("CI").isPresent

但是,CI可能不会在所有配置项环境中设置,因此您必须
1.手动设置。如何执行此操作取决于配置项配置。
1.尝试回退到其他环境变量或系统属性:

// first check if CI is present
providers.environmentVariable("CI")
  // else, try checking if running on TeamCity
  .orElse(providers.environmentVariable("TEAMCITY_VERSION"))
  .isPresent

相关问题