如何用程序导出Jenkins构建变量



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

我想将Testdroid API提供的测试结果URL导出为作业环境变量,比如test_CLOUD_LINK。我在CloudLink类中找到了包含这些信息的变量,但我不确定如何将其导出为env变量以在构建中使用。

有人能举个例子吗?

我设法让它工作起来。

首先,我定义了一个实现EnvironmentContributingAction接口的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

相关内容

  • 没有找到相关文章

最新更新