Skip to content

Commit

Permalink
#9 Added command to leniently remove local tags for a release train.
Browse files Browse the repository at this point in the history
  • Loading branch information
odrotbohm committed Feb 12, 2016
1 parent 861b8e4 commit 121cd8f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,9 @@ public void push(//
git.push(iteration);
}
}

@CliCommand("git remove tags")
public void removeTags(@CliOption(key = "", mandatory = true) TrainIteration iteration) {
git.removeTags(iteration);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,8 @@ public void checkout(TrainIteration iteration) {
Project project = module.getProject();
ArtifactVersion artifactVersion = ArtifactVersion.of(module);

Tag tag = findTagFor(project, artifactVersion);

if (tag == null) {
throw new IllegalStateException(
String.format("No tag found for version %s of project %s, aborting.", artifactVersion, project));
}
Tag tag = findTagFor(project, artifactVersion).orElseThrow(() -> new IllegalStateException(
String.format("No tag found for version %s of project %s, aborting.", artifactVersion, project)));

try (Git git = new Git(getRepository(module.getProject()))) {

Expand Down Expand Up @@ -397,6 +393,29 @@ public void createMaintenanceBranches(TrainIteration iteration) throws Exception
});
}

public void removeTags(TrainIteration iteration) {

ExecutionUtils.run(iteration, module -> {

Project project = module.getProject();
ArtifactVersion artifactVersion = ArtifactVersion.of(module);

Optional<Tag> tag = findTagFor(project, artifactVersion);

if (!tag.isPresent()) {
logger.log(module, "No tag %s found project %s, skipping.", artifactVersion, project);
return;
}

try (Git git = new Git(getRepository(module.getProject()))) {

logger.log(module, "git tag -D %s", tag.get());

git.tagDelete().setTags(tag.get().toString()).call();
}
});
}

private Branch createMaintenanceBranch(ModuleIteration module) throws Exception {

try (Git git = new Git(getRepository(module.getProject()))) {
Expand Down Expand Up @@ -447,12 +466,11 @@ private ObjectId getReleaseHash(ModuleIteration module) throws Exception {
* @return
* @throws IOException
*/
private Tag findTagFor(Project project, ArtifactVersion version) {
private Optional<Tag> findTagFor(Project project, ArtifactVersion version) {

return getTags(project).stream().//
filter(tag -> tag.toArtifactVersion().map(it -> it.equals(version)).orElse(false)).//
findFirst().orElseThrow(() -> new IllegalArgumentException(
String.format("No tag found for version %s of project %s!", version, project)));
findFirst();
}

private Repository getRepository(Project project) throws IOException {
Expand Down

0 comments on commit 121cd8f

Please sign in to comment.