Skip to content

Commit

Permalink
feat(artifacts): Support inflation of artifacts from trigger buildInfo (
Browse files Browse the repository at this point in the history
  • Loading branch information
jkschneider authored Mar 18, 2019
1 parent e15b145 commit 8b72f6e
Showing 1 changed file with 15 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.netflix.spinnaker.echo.build;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.netflix.spinnaker.echo.model.Trigger;
import com.netflix.spinnaker.echo.model.trigger.BuildEvent;
Expand Down Expand Up @@ -76,7 +77,7 @@ public Map<String, Object> getProperties(BuildEvent event, String propertyFile)
return Collections.emptyMap();
}

public List<Artifact> getArtifacts(BuildEvent event, String propertyFile) {
private List<Artifact> getArtifactsFromPropertyFile(BuildEvent event, String propertyFile) {
String master = event.getContent().getMaster();
String job = event.getContent().getProject().getName();
int buildNumber = event.getBuildNumber();
Expand All @@ -86,17 +87,28 @@ public List<Artifact> getArtifacts(BuildEvent event, String propertyFile) {
return Collections.emptyList();
}

private List<Artifact> getArtifactsFromBuildInfo(Trigger trigger) {
Map<String, Object> buildInfo = trigger.getBuildInfo();
if(buildInfo != null) {
Object artifacts = buildInfo.get("artifacts");
if (artifacts != null) {
return objectMapper.convertValue(artifacts, new TypeReference<List<Artifact>>() {});
}
}
return Collections.emptyList();
}

public List<Artifact> getArtifactsFromBuildEvent(BuildEvent event, Trigger trigger) {
List<Artifact> buildArtifacts = Optional.ofNullable(event.getContent())
.map(BuildEvent.Content::getProject)
.map(BuildEvent.Project::getLastBuild)
.map(BuildEvent.Build::getArtifacts)
.orElse(Collections.emptyList());
List<Artifact> extractedArtifacts = this.getArtifacts(event, trigger.getPropertyFile());

List <Artifact> result = new ArrayList<>();
result.addAll(buildArtifacts);
result.addAll(extractedArtifacts);
result.addAll(getArtifactsFromPropertyFile(event, trigger.getPropertyFile()));
result.addAll(getArtifactsFromBuildInfo(trigger));
return result;
}

Expand Down

0 comments on commit 8b72f6e

Please sign in to comment.