Skip to content

Commit

Permalink
Support private builds for docker compose build
Browse files Browse the repository at this point in the history
  • Loading branch information
Surya Gaddipati committed Apr 21, 2015
1 parent debf815 commit 0138009
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 12 deletions.
4 changes: 2 additions & 2 deletions src/main/java/com/groupon/jenkins/SetupConfig.java
Expand Up @@ -26,7 +26,7 @@ of this software and associated documentation files (the "Software"), to deal
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.groupon.jenkins.buildtype.install_packages.InstallPackagesBuild;
import com.groupon.jenkins.buildtype.dockercompose.DockerComposeBuild;
import com.groupon.jenkins.dynamic.build.repository.DynamicBuildRepository;
import com.groupon.jenkins.dynamic.build.repository.DynamicProjectRepository;
import com.groupon.jenkins.dynamic.buildtype.BuildType;
Expand Down Expand Up @@ -154,7 +154,7 @@ public boolean hasPrivateRepoSupport() {

public String getDefaultBuildType() {
if (StringUtils.isEmpty(defaultBuildType)) {
InstallPackagesBuild type = new InstallPackagesBuild();
DockerComposeBuild type = new DockerComposeBuild();
return type.getId();
}
return defaultBuildType;
Expand Down
Expand Up @@ -29,7 +29,7 @@
import static java.lang.String.format;

@Extension
public class DockerComposeBuildType extends BuildType implements SubBuildRunner {
public class DockerComposeBuild extends BuildType implements SubBuildRunner {
private BuildConfiguration buildConfiguration;

@Override
Expand Down Expand Up @@ -63,15 +63,28 @@ private BuildConfiguration getBuildConfiguration(String fullName, Map config, St
}
public ShellCommands getCheckoutCommands(Map<String, Object> dotCiEnvVars) {
GitUrl gitRepoUrl = new GitUrl((String) dotCiEnvVars.get("GIT_URL"));
String gitUrl = gitRepoUrl.getHttpsUrl();
boolean isPrivateRepo = Boolean.parseBoolean((String) dotCiEnvVars.get("DOTCI_IS_PRIVATE_REPO"));
String gitUrl = gitRepoUrl.getGitUrl();
ShellCommands shellCommands = new ShellCommands();
shellCommands.add("find . -delete");
shellCommands.add("find . ! -path \"./deploykey_rsa.pub\" ! -path \"./deploykey_rsa\" -delete");
shellCommands.add("git init");
shellCommands.add(format("git remote add origin %s",gitUrl));

if(dotCiEnvVars.get("DOTCI_PULL_REQUEST") != null){
shellCommands.add(format("git clone %s %s",gitUrl,"."));
shellCommands.add(format("git fetch origin \"+refs/pull/%s/merge:\"", dotCiEnvVars.get("DOTCI_PULL_REQUEST")));
if(isPrivateRepo){

shellCommands.add(format("ssh-agent bash -c \"ssh-add -D && ssh-add \\%s/deploykey_rsa && git fetch origin '+refs/pull/%s/merge:' \"",dotCiEnvVars.get("WORKSPACE"), dotCiEnvVars.get("DOTCI_PULL_REQUEST")));
}else {
shellCommands.add(format("git fetch origin \"+refs/pull/%s/merge:\"", dotCiEnvVars.get("DOTCI_PULL_REQUEST")));
}
shellCommands.add("git reset --hard FETCH_HEAD");
}else {
shellCommands.add(format("git clone --branch=%s %s %s", dotCiEnvVars.get("DOTCI_BRANCH"), gitUrl,"."));
if(isPrivateRepo){

shellCommands.add(format("ssh-agent bash -c \"ssh-add -D && ssh-add \\%s/deploykey_rsa && git fetch origin %s \"",dotCiEnvVars.get("WORKSPACE"), dotCiEnvVars.get("DOTCI_BRANCH")));
}else{
shellCommands.add(format("git fetch origin %s",dotCiEnvVars.get("DOTCI_BRANCH")));
}
shellCommands.add(format("git reset --hard %s", dotCiEnvVars.get("SHA")));
}
return shellCommands;
Expand Down
Expand Up @@ -35,7 +35,7 @@ public class DockerfileBuild extends DockerBuild{

@Override
public String getDescription() {
return "Dockerfile Build";
return "Dockerfile Build (Deprecated, use Docker Compose Build)";
}


Expand Down
Expand Up @@ -35,7 +35,7 @@ public class DockerImageBuild extends DockerBuild {

@Override
public String getDescription() {
return "Docker Build";
return "Docker Build (Deperecated, use Docker Compose Build)";
}


Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/groupon/jenkins/git/GitUrl.java
Expand Up @@ -64,7 +64,7 @@ public String getUrl() {
}

public String getGitUrl(){
return String.format("git://%s/%s/%s.git",domain,orgName,name);
return String.format("git@%s:%s/%s.git",domain,orgName,name);
}


Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/groupon/jenkins/github/GitUrlTest.java
Expand Up @@ -56,7 +56,7 @@ public void should_convert_http_url_into_ssh_url() {
@Test
public void should_convert_http_url_into_git_url() {
String projectUrl = new GitUrl("https://github.com/groupon/DotCi").getGitUrl();
assertEquals("git://github.com/groupon/DotCi.git", projectUrl);
assertEquals("git@github.com:groupon/DotCi.git", projectUrl);
}
@Test
public void should_convert_git_url_into_https_url() {
Expand Down

0 comments on commit 0138009

Please sign in to comment.