diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java index c4d28f96..74ea9fc5 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java @@ -587,6 +587,7 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl参考 longi-deployment 的实现:每次都从 Jenkins API 实时获取最新状态 */ private void processBuildNotification(TeamEnvironmentNotificationConfig config, NotificationChannel channel, JenkinsJob job, JenkinsBuild build, ExternalSystem externalSystem, Application application, Environment environment) { @@ -595,7 +596,13 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl builds = jenkinsServiceIntegration.listBuilds(externalSystem, job.getJobName()); + return builds.stream() + .filter(b -> b.getNumber().equals(buildNumber)) + .findFirst() + .orElse(null); + } catch (Exception e) { + log.warn("从Jenkins获取构建信息失败: job={}, buildNumber={}, error={}", job.getJobName(), buildNumber, e.getMessage()); + return null; + } + } + + /** + * 判断状态是否为已完成 + */ + private boolean isStatusFinished(String status) { + return "SUCCESS".equals(status) || "FAILURE".equals(status) || "ABORTED".equals(status); + } + /** * 判断构建是否已结束 */