|
|
@@ -23,8 +23,6 @@ import org.eclipse.jgit.api.Git;
|
|
|
import org.springframework.web.util.UriComponentsBuilder;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.net.MalformedURLException;
|
|
|
-import java.net.URL;
|
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
@@ -45,7 +43,7 @@ public class SonarJavaImageBuildHandler extends AbstractHandler {
|
|
|
|
|
|
// properties from pipeline config json
|
|
|
// private String repoUrl;
|
|
|
- private String branchName;
|
|
|
+ private String branchOrHash;
|
|
|
private int projectId;
|
|
|
// private String commitHash;
|
|
|
|
|
|
@@ -71,12 +69,20 @@ public class SonarJavaImageBuildHandler extends AbstractHandler {
|
|
|
// convert url for local test
|
|
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(repoUrl);
|
|
|
repoUrl = builder.scheme("https").host("seecoder-gitlab-gitlab.seec.seecoder.cn").path(".git/").toUriString();
|
|
|
- BranchVO branch = branchService.getBranchById(projectId, branchName);
|
|
|
+ BranchVO branch = branchService.getBranchById(projectId, branchOrHash);
|
|
|
+ String commitHash;
|
|
|
+ boolean isBranch;
|
|
|
if (branch == null) {
|
|
|
- throw new PipelineException(HttpStatus.SC_SERVICE_UNAVAILABLE, PipelineException.BRANCH_NOT_FOUND_ERROR);
|
|
|
+// throw new PipelineException(HttpStatus.SC_SERVICE_UNAVAILABLE, PipelineException.BRANCH_NOT_FOUND_ERROR);
|
|
|
+ context.appendResult("未找到对应分支,尝试当做commit hash处理");
|
|
|
+ commitHash = branchOrHash;
|
|
|
+ isBranch = false;
|
|
|
+ } else {
|
|
|
+ commitHash = branch.getCommit().getId();
|
|
|
+ isBranch = true;
|
|
|
}
|
|
|
- String commitHash = branch.getCommit().getId();
|
|
|
- String projectKey = applicationProperties.getSonar().getProjectKey();
|
|
|
+
|
|
|
+ String sonarProjectKey = String.format("%s-%s", imageName, commitHash); //TODO
|
|
|
String loginToken = applicationProperties.getSonar().getLoginToken();
|
|
|
String sonarHost = applicationProperties.getSonar().getHost();
|
|
|
|
|
|
@@ -86,7 +92,7 @@ public class SonarJavaImageBuildHandler extends AbstractHandler {
|
|
|
//注:temp文件/目录系统会定时删,实际文件名喂 prefix + 它生成的suffix随机数,所以不会命名冲突
|
|
|
directory = Files.createTempDirectory("seecoder-devcloud-");
|
|
|
Git git = gitApi.clone(repoUrl, directory.toString());
|
|
|
- git.checkout().setCreateBranch(false).setStartPoint("origin/" + branchName).setName("origin/" + branchName).call();
|
|
|
+ git.checkout().setCreateBranch(false).setStartPoint(branchOrHash).setName(branchOrHash).call();
|
|
|
} catch (Exception e) {
|
|
|
context.appendErrorResult(PipelineException.GIT_CLONE_ERROR, e);
|
|
|
throw new PipelineException(HttpStatus.SC_SERVICE_UNAVAILABLE, PipelineException.GIT_CLONE_ERROR, e);
|
|
|
@@ -116,7 +122,7 @@ public class SonarJavaImageBuildHandler extends AbstractHandler {
|
|
|
.replace("%projectId%", Integer.toString(projectId))
|
|
|
.replace("%imageName%", imageName)
|
|
|
.replace("%imageTag%", imageTag)
|
|
|
- .replace("%projectKey%", projectKey)
|
|
|
+ .replace("%projectKey%", sonarProjectKey)
|
|
|
.replace("%loginToken%", loginToken)
|
|
|
.replace("%host%", sonarHost);
|
|
|
|