gpt4 book ai didi

java - 如何以编程方式导出 Jenkins 构建变量

转载 作者:行者123 更新时间:2023-11-30 02:57:11 26 4
gpt4 key购买 nike

我正在尝试对这个插件做一些小小的修改https://github.com/bitbar/testdroid-run-in-cloud-plugin .

我想将 Testdroid API 提供的测试结果 URL 导出为作业环境变量,例如 TEST_CLOUD_LINK。我在 CloudLink 类中找到了保存此信息的变量,但我不确定如何将其导出为环境变量以在构建中使用。

谁能帮忙举个例子吗?

最佳答案

我设法让它工作。

首先,我定义了一个实现 EnvironmentContributingAction 接口(interface)的 Action 类。

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 Perform() 方法中修改了下面的代码片段。

        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);

现在,我可以在 Jenkins 构建中使用 CLOUD_LINK 环境变量,例如在 Slack 通知中发布结果 URL。

这是拉取请求 https://github.com/jenkinsci/testdroid-run-in-cloud-plugin/pull/4

关于java - 如何以编程方式导出 Jenkins 构建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36916109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com