如何在插件代码中使用Executable(在Bamboo中定义为Capability)

问题描述 投票:1回答:1

来自Atlassian网站上的示例代码

https://developer.atlassian.com/server/bamboo/executing-external-processes-using-processservice/

ExternalProcess process = ProcessService.createExternalProcess(taskContext, new ExternalProcessBuilder().*command*(Arrays.asList("**/bin/ls**")). workingDirectory(fileWorkingDir));

我应该使用什么Bamboo API来获取“/home/kshi/.local/bin/robot”并将其传递给command()。从TaskConfiguration配置映射或TaskDefinition获取值没有帮助。

我的atlassian-plugin.xml中有以下标记

< executable key="**robot**" nameKey="RobotFrameworkTest.robotExecutable"/ >

Robot Framework Test.robot Executable指向“机器人”

enter image description here

我想利用竹子中定义的可执行文件。 (/home/kshi/.local/bin/root)

从计划的日志中我可以看到Bamboo将机器人命令称为bamboo.capability.system.builder.command.robot,想知道我是否必须在代码中以相同的方式使用它。

bamboo atlassian-plugin-sdk
1个回答
1
投票

我在Atlassian网站上找到了一个相关链接,暗示了使用可执行文件的方法。

https://community.atlassian.com/t5/Answers-Developer-Questions/How-to-access-build-variables-from-a-bamboo-task/qaq-p/572570

@ComponentImport private final ProcessService processService;
@ComponentImport private final CapabilityContext capabilityContext;

public RobotTestTaskType(final ProcessService processService, final CapabilityContext capabilityContext)

{ this.processService = processService; this.capabilityContext = capabilityContext; }
String robotExecutable = capabilityContext.getCapabilityValue("system.builder.command.robot");
© www.soinside.com 2019 - 2024. All rights reserved.