打印了JENKINS节点日志

This commit is contained in:
dengqichen 2025-11-07 13:14:42 +08:00
parent 011e13dbfa
commit ee9c0124fd
3 changed files with 15 additions and 12 deletions

View File

@ -24,13 +24,17 @@ public interface IJenkinsServiceIntegration extends IExternalSystemIntegration {
/** /**
* 获取Jenkins Crumb用于CSRF保护 * 获取Jenkins Crumb用于CSRF保护
* *
* @param externalSystem Jenkins系统配置
* @return Crumb响应信息 * @return Crumb响应信息
*/ */
JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(); JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(ExternalSystem externalSystem);
/** /**
* 使用参数触发构建 * 使用参数触发构建
* *
* @param externalSystem Jenkins系统配置
* @param jobName 任务名称
* @param parameters 构建参数
* @return 构建队列ID * @return 构建队列ID
*/ */
String buildWithParameters(ExternalSystem externalSystem, String jobName, Map<String, String> parameters); String buildWithParameters(ExternalSystem externalSystem, String jobName, Map<String, String> parameters);
@ -38,10 +42,11 @@ public interface IJenkinsServiceIntegration extends IExternalSystemIntegration {
/** /**
* 获取队列中的构建信息 * 获取队列中的构建信息
* *
* @param externalSystem Jenkins系统配置
* @param queueId 队列ID * @param queueId 队列ID
* @return 队列构建信息 * @return 队列构建信息
*/ */
JenkinsQueueBuildInfoResponse getQueuedBuildInfo(String queueId); JenkinsQueueBuildInfoResponse getQueuedBuildInfo(ExternalSystem externalSystem, String queueId);
/** /**
* 获取构建状态 * 获取构建状态

View File

@ -120,8 +120,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration
@Override @Override
public JenkinsCrumbIssuerResponse getJenkinsCrumbIssue() { public JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(ExternalSystem externalSystem) {
ExternalSystem externalSystem = systemRepository.findById(1L).orElseThrow(() -> new RuntimeException("没有找到三方系统"));
String url = externalSystem.getUrl() + "/crumbIssuer/api/json"; String url = externalSystem.getUrl() + "/crumbIssuer/api/json";
HttpHeaders headers = createHeaders(externalSystem); HttpHeaders headers = createHeaders(externalSystem);
HttpEntity<String> entity = new HttpEntity<>(headers); HttpEntity<String> entity = new HttpEntity<>(headers);
@ -137,7 +136,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration
} }
// 1. 获取Crumb // 1. 获取Crumb
JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(); JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(externalSystem);
// 2. 构建URL // 2. 构建URL
String url = UriComponentsBuilder.fromHttpUrl(externalSystem.getUrl()) String url = UriComponentsBuilder.fromHttpUrl(externalSystem.getUrl())
@ -184,7 +183,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration
private void ensurePipelineScriptParameter(ExternalSystem externalSystem, String jobName) { private void ensurePipelineScriptParameter(ExternalSystem externalSystem, String jobName) {
try { try {
// 获取 Crumb // 获取 Crumb
JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(); JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(externalSystem);
// 获取Job配置 // 获取Job配置
String configUrl = String.format("%s/job/%s/config.xml", externalSystem.getUrl(), jobName); String configUrl = String.format("%s/job/%s/config.xml", externalSystem.getUrl(), jobName);
@ -359,8 +358,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration
} }
@Override @Override
public JenkinsQueueBuildInfoResponse getQueuedBuildInfo(String queueId) { public JenkinsQueueBuildInfoResponse getQueuedBuildInfo(ExternalSystem externalSystem, String queueId) {
ExternalSystem externalSystem = systemRepository.findById(1L).orElseThrow(() -> new RuntimeException("没有找到三方系统"));
String queueUrl = String.format("%s/queue/item/%s/api/json", externalSystem.getUrl().trim(), queueId); String queueUrl = String.format("%s/queue/item/%s/api/json", externalSystem.getUrl().trim(), queueId);
ResponseEntity<Map<String, Object>> response = restTemplate.exchange(queueUrl, HttpMethod.GET, createHttpEntity(externalSystem), new ParameterizedTypeReference<>() { ResponseEntity<Map<String, Object>> response = restTemplate.exchange(queueUrl, HttpMethod.GET, createHttpEntity(externalSystem), new ParameterizedTypeReference<>() {
}); });

View File

@ -76,7 +76,7 @@ public class JenkinsBuildDelegate extends BaseNodeDelegate<JenkinsBuildInputMapp
log.info("Jenkins build queued: queueId={}", queueId); log.info("Jenkins build queued: queueId={}", queueId);
// 3. 等待构建从队列中开始 // 3. 等待构建从队列中开始
JenkinsQueueBuildInfoResponse buildInfo = waitForBuildToStart(queueId); JenkinsQueueBuildInfoResponse buildInfo = waitForBuildToStart(externalSystem, queueId);
log.info("Jenkins build started: buildNumber={}", buildInfo.getBuildNumber()); log.info("Jenkins build started: buildNumber={}", buildInfo.getBuildNumber());
@ -142,11 +142,11 @@ public class JenkinsBuildDelegate extends BaseNodeDelegate<JenkinsBuildInputMapp
return outputs; return outputs;
} }
private JenkinsQueueBuildInfoResponse waitForBuildToStart(String queueId) { private JenkinsQueueBuildInfoResponse waitForBuildToStart(ExternalSystem externalSystem, String queueId) {
int attempts = 0; int attempts = 0;
while (attempts < MAX_QUEUE_POLLS) { while (attempts < MAX_QUEUE_POLLS) {
try { try {
JenkinsQueueBuildInfoResponse buildInfo = jenkinsServiceIntegration.getQueuedBuildInfo(queueId); JenkinsQueueBuildInfoResponse buildInfo = jenkinsServiceIntegration.getQueuedBuildInfo(externalSystem, queueId);
if (buildInfo != null) { if (buildInfo != null) {
return buildInfo; return buildInfo;
} }