0

Я пытаюсь сделать небольшую модификацию этого плагина https://github.com/bitbar/testdroid-run-in-cloud-plugin.Как экспортировать переменную Build Jenkins программно

Я хочу экспортировать URL-адрес результатов тестирования, предоставленный API Testdroid, как переменную среды работы, похожую на TEST_CLOUD_LINK. Я нашел переменную, которая хранит эту информацию в классе CloudLink, но я не уверен, как я могу экспортировать ее как переменную env для использования в сборке.

Любой может помочь с примером?

ответ

1

Мне удалось заставить его работать.

Fist Я определил класс Action, реализующий интерфейс EnvironmentContributingAction.

public class RunInCloudEnvInject implements EnvironmentContributingAction { 

    private String key; 

    private String value; 

    public RunInCloudEnvInject(String key, String value) { 
     this.key = key; 
     this.value = value; 
    } 

    @Override public void buildEnvVars(AbstractBuild<?, ?> abstractBuild, EnvVars envVars) { 
     if (envVars != null && key != null && value != null) { 
      envVars.put(key, value); 
     } 
    } 

    @Override public String getIconFileName() { 
     return null; 
    } 

    @Override public String getDisplayName() { 
     return "RunInCloudBuilderEnvInjectionAction"; 
    } 

    @Override public String getUrlName() { 
     return null; 
    } 
} 

После этого я изменил этот фрагмент ниже внутри @Override выполнения() метод класса, который реализует абстрактный строитель.

 String cloudLink = String.format("%s/#service/testrun/%s/%s", cloudLinkPrefix, testRun.getProjectId(), 
       testRun.getId()); 
     build.getActions().add(new CloudLink(build, cloudLink)); 

     RunInCloudEnvInject variable = new RunInCloudEnvInject("CLOUD_LINK", cloudLink); 
     build.addAction(variable); 

Теперь я могу использовать мое CLOUD_LINK переменных окружений внутри Дженкинс построить, чтобы разместить URL результатов в Слаке уведомления, например.

Вот запрос на тягу https://github.com/jenkinsci/testdroid-run-in-cloud-plugin/pull/4

Смежные вопросы