|
|
@@ -10,13 +10,13 @@ import nju.seec.SEECdemo.data.entity.assignment.CodeWorkResult;
|
|
|
import nju.seec.SEECdemo.logic.api.JenkinsApi;
|
|
|
import nju.seec.SEECdemo.logic.api.vo.BuildDetails;
|
|
|
import nju.seec.SEECdemo.util.ApplicationProperties;
|
|
|
+import nju.seec.SEECdemo.util.BuildState;
|
|
|
import nju.seec.SEECdemo.util.ToolKit;
|
|
|
-import nju.seec.SEECdemo.util.enums.BuildStatus;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.sql.Timestamp;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -39,11 +39,11 @@ public class BuildManager {
|
|
|
|
|
|
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
|
|
|
@Transactional
|
|
|
- public boolean invokeNextBuild(int codeId,String commitHash) {
|
|
|
- CodeWorkResult codeResult = codeResultDAO.findById(codeId);
|
|
|
+ public boolean invokeNextBuild(int codeResultId,String commitHash) {
|
|
|
+ CodeWorkResult codeResult = codeResultDAO.findById(codeResultId);
|
|
|
if (codeResult == null) return false;
|
|
|
try {
|
|
|
- QueueItem item = jenkinsApi.invokeBuild(codeId, buildParam(codeResult, commitHash));
|
|
|
+ QueueItem item = jenkinsApi.invokeBuild(codeResultId, buildParam(codeResult, commitHash));
|
|
|
System.out.println(item.getExecutable().getNumber().intValue());
|
|
|
return true;
|
|
|
} catch (IOException e) {
|
|
|
@@ -70,27 +70,26 @@ public class BuildManager {
|
|
|
@Transactional
|
|
|
public boolean recordBuildResult(int codeId, int buildNumber, String imageName) {
|
|
|
|
|
|
- System.out.println("id " + codeId + " buildNumber " + buildNumber);
|
|
|
- CodeWorkResult codeResult = codeResultDAO.findById(codeId);
|
|
|
+ CodeWorkResult codeResult = codeResultDAO.findById(1);
|
|
|
if (codeResult == null) return false;
|
|
|
|
|
|
BuildRecord buildRecord = new BuildRecord();
|
|
|
|
|
|
try{
|
|
|
BuildDetails buildDetails = jenkinsApi.fetchBuildDetails(codeId,buildNumber,"PACKAGE",true);
|
|
|
- buildRecord.setBuildTime(new Timestamp(System.currentTimeMillis()));
|
|
|
- buildRecord.setBuildStatus(BuildStatus.SUCCESS);
|
|
|
- buildRecord.setConsoleOutput(buildDetails.getConsoleOutput());
|
|
|
+ buildRecord.setBuildTime(LocalDateTime.now());
|
|
|
+ buildRecord.setBuildState(BuildState.BUILD_SUCCESS);
|
|
|
+ buildRecord.setBuildMessage(buildDetails.getConsoleOutput());
|
|
|
buildRecord.setNumber(buildNumber);
|
|
|
- buildRecord.setCodeResult(codeResult);
|
|
|
- buildRecord.setImageName(imageName);
|
|
|
+ buildRecord.setCodeWorkResult(codeResult);
|
|
|
+ buildRecord.setMirrorId(imageName);
|
|
|
}catch (Exception e) {
|
|
|
log.error("获取构建记录" + buildNumber + "时发生异常" + ToolKit.format(e));
|
|
|
- buildRecord.setConsoleOutput("系统内部发生未知异常,请尝试重新提交!");
|
|
|
- buildRecord.setBuildStatus(BuildStatus.FAILURE);
|
|
|
+ buildRecord.setBuildMessage("系统内部发生未知异常,请尝试重新提交!");
|
|
|
+ buildRecord.setBuildState(BuildState.BUILD_FAILURE);
|
|
|
} finally {
|
|
|
- buildRecordDao.save(buildRecord);
|
|
|
- }
|
|
|
+ buildRecordDao.save(buildRecord);
|
|
|
+ }
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
@@ -116,7 +115,7 @@ public class BuildManager {
|
|
|
|
|
|
Map<String, String> param = new HashMap<>();
|
|
|
param.put("GIT_URL", properties.getGitlab().getHost() + "/" + codeResult.getGroupId() + "/" + codeResult.getCode().getName());
|
|
|
- param.put("COMMIT_HASH", commitHash);
|
|
|
+ param.put("COMMIT_HASH", commitHash);
|
|
|
param.put("DOCKER_FILE", "#基于openjdk:8\n" +
|
|
|
"FROM openjdk:8-jdk-alpine\n" +
|
|
|
"\n" +
|