Skip to content

Commit 6b74409

Browse files
authored
Merge pull request #81 from NoodlesNZ/master
Add Github deploy
2 parents d5e0fa3 + 2d1c2c3 commit 6b74409

File tree

4 files changed

+41
-2
lines changed

4 files changed

+41
-2
lines changed

src/main/java/com/amazonaws/codedeploy/AWSCodeDeployPublisher.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.amazonaws.services.codedeploy.model.GetDeploymentRequest;
3131
import com.amazonaws.services.codedeploy.model.RegisterApplicationRevisionRequest;
3232
import com.amazonaws.services.codedeploy.model.S3Location;
33+
import com.amazonaws.services.codedeploy.model.GitHubLocation;
3334

3435
import hudson.AbortException;
3536
import hudson.FilePath;
@@ -84,6 +85,8 @@ public class AWSCodeDeployPublisher extends Publisher implements SimpleBuildStep
8485

8586
private final String s3bucket;
8687
private final String s3prefix;
88+
private final String githubRepository;
89+
private final String githubCommitId;
8790
private final String applicationName;
8891
private final String deploymentGroupName; // TODO allow for deployment to multiple groups
8992
private final String deploymentConfig;
@@ -113,6 +116,8 @@ public class AWSCodeDeployPublisher extends Publisher implements SimpleBuildStep
113116
public AWSCodeDeployPublisher(
114117
String s3bucket,
115118
String s3prefix,
119+
String githubRepository,
120+
String githubCommitId,
116121
String applicationName,
117122
String deploymentGroupName,
118123
String deploymentConfig,
@@ -180,6 +185,9 @@ public AWSCodeDeployPublisher(
180185
} else {
181186
this.s3prefix = s3prefix;
182187
}
188+
189+
this.githubRepository = githubRepository;
190+
this.githubCommitId = githubCommitId;
183191
}
184192

185193
@Override
@@ -226,8 +234,15 @@ public void perform(@Nonnull Run<?,?> build, @Nonnull FilePath workspace, @Nonnu
226234
if (workspace == null) {
227235
throw new IllegalArgumentException("No workspace present for the build.");
228236
}
229-
final FilePath sourceDirectory = getSourceDirectory(workspace);
230-
final RevisionLocation revisionLocation = zipAndUpload(aws, projectName, sourceDirectory);
237+
238+
RevisionLocation revisionLocation;
239+
240+
if (!StringUtils.isEmpty(this.githubRepository) && !StringUtils.isEmpty(this.githubCommitId)) {
241+
revisionLocation = createFromGitHub();
242+
} else {
243+
final FilePath sourceDirectory = getSourceDirectory(workspace);
244+
revisionLocation = zipAndUpload(aws, projectName, sourceDirectory);
245+
}
231246

232247
registerRevision(aws, revisionLocation);
233248
if ("onlyRevision".equals(deploymentMethod)){
@@ -395,6 +410,18 @@ private RevisionLocation zipAndUpload(AWSClients aws, String projectName, FilePa
395410
}
396411
}
397412

413+
private RevisionLocation createFromGitHub() {
414+
GitHubLocation githubLocation = new GitHubLocation();
415+
githubLocation.setRepository(this.githubRepository);
416+
githubLocation.setCommitId(this.githubCommitId);
417+
418+
RevisionLocation revisionLocation = new RevisionLocation();
419+
revisionLocation.setRevisionType(RevisionLocationType.GitHub);
420+
revisionLocation.setGitHubLocation(githubLocation);
421+
422+
return revisionLocation;
423+
}
424+
398425
private void registerRevision(AWSClients aws, RevisionLocation revisionLocation) {
399426

400427
String applicationName = getApplicationNameFromEnv();

src/main/resources/com/amazonaws/codedeploy/AWSCodeDeployPublisher/config.jelly

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818
<f:entry title="S3 Prefix" field="s3prefix">
1919
<f:textbox default="" />
2020
</f:entry>
21+
<f:entry title="GitHub Repository" field="githubRespository">
22+
<f:textbox default="" />
23+
</f:entry>
24+
<f:entry title="GitHub Commit Id" field="githubCommitId">
25+
<f:textbox default="" />
26+
</f:entry>
2127
<f:entry title="Subdirectory" field="subdirectory">
2228
<f:textbox default="" />
2329
</f:entry>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<div>
2+
The GitHub commit id hash of the revision to be pushed to CodeDeploy. This is to be used in Pipeline mode.
3+
</div>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<div>
2+
The GitHub repository used to pull the revision from. This is to be used in Pipeline mode.
3+
</div>

0 commit comments

Comments
 (0)