В фристайл-заданиях Jenkins эта переменная доступна автоматически, но я изо всех сил пытаюсь получить к нему доступ в своем плагине при запуске конвейеров.
Я пытался использовать build.getEnvironment() для получения переменных среды, но GIT_COMMIT, похоже, не заполняется . Вот упрощенная версия того, что я делаю:
Код: Выделить всё
import hudson.model.Run;
import hudson.EnvVars;
public class MyCustomPlugin {
public void getGitCommit(Run build) {
try {
// Get the environment variables for the build
EnvVars envVars = build.getEnvironment(null);
// Retrieve the GIT_COMMIT variable
String gitCommit = envVars.get("GIT_COMMIT");
if (gitCommit != null) {
System.out.println("GIT_COMMIT: " + gitCommit);
} else {
System.out.println("GIT_COMMIT not found in the environment.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
Как я могу надежно получить доступ к GIT_COMMIT для сборки конвейера в моем плагине?
Есть ли альтернативный подход, который мне следует использовать, например, прямой доступ к SCM?
Я готов либо получить его из среды, либо через SCM, но я не уверен, какой подход является лучшим в контексте конвейера.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ins-plugin