use of org.jreleaser.model.GitService.KEY_SKIP_RELEASE_SIGNATURES in project jreleaser by jreleaser.
the class DistributionsValidator method validateDistribution.
private static void validateDistribution(JReleaserContext context, Distribution distribution, Errors errors) {
context.getLogger().debug("distribution.{}", distribution.getName());
if (!distribution.isActiveSet()) {
distribution.setActive(Active.ALWAYS);
}
if (!distribution.resolveEnabled(context.getModel().getProject()))
return;
if (!selectArtifactsByPlatform(context, distribution)) {
distribution.setActive(Active.NEVER);
distribution.disable();
return;
}
if (isBlank(distribution.getName())) {
errors.configuration(RB.$("validation_must_not_be_blank", "distribution.name"));
return;
}
if (null == distribution.getType()) {
errors.configuration(RB.$("validation_must_not_be_null", "distribution." + distribution.getName() + ".type"));
return;
}
if (isBlank(distribution.getExecutable().getName())) {
distribution.getExecutable().setName(distribution.getName());
}
if (isBlank(distribution.getExecutable().getWindowsExtension())) {
switch(distribution.getType()) {
case BINARY:
case NATIVE_IMAGE:
distribution.getExecutable().setWindowsExtension("exe");
break;
default:
distribution.getExecutable().setWindowsExtension("bat");
}
}
if (Distribution.JAVA_DISTRIBUTION_TYPES.contains(distribution.getType())) {
context.getLogger().debug("distribution.{}.java", distribution.getName());
if (!validateJava(context, distribution, errors)) {
return;
}
}
// validate distribution type
if (!distribution.getJava().isEnabled() && Distribution.JAVA_DISTRIBUTION_TYPES.contains(distribution.getType())) {
errors.configuration(RB.$("validation_distributions_java", "distribution." + distribution.getName() + ".type", distribution.getType(), "distribution." + distribution.getName() + ".java", "project.java"));
return;
}
if (null == distribution.getArtifacts() || distribution.getArtifacts().isEmpty()) {
errors.configuration(RB.$("validation_is_empty", "distribution." + distribution.getName() + ".artifacts"));
return;
}
List<String> tags = new ArrayList<>();
tags.addAll(context.getModel().getProject().getTags());
tags.addAll(distribution.getTags());
distribution.setTags(tags);
int i = 0;
for (Artifact artifact : distribution.getArtifacts()) {
if (artifact.isActive()) {
validateArtifact(context, distribution, artifact, i++, errors);
if (distribution.getExtraProperties().containsKey(KEY_SKIP_RELEASE_SIGNATURES) && !artifact.getExtraProperties().containsKey(KEY_SKIP_RELEASE_SIGNATURES)) {
artifact.getExtraProperties().put(KEY_SKIP_RELEASE_SIGNATURES, distribution.getExtraProperties().get(KEY_SKIP_RELEASE_SIGNATURES));
}
}
}
// validate artifact.platform is unique
Map<String, List<Artifact>> byPlatform = distribution.getArtifacts().stream().filter(Artifact::isActive).collect(groupingBy(artifact -> isBlank(artifact.getPlatform()) ? "<nil>" : artifact.getPlatform()));
// check platforms by extension
byPlatform.forEach((p, artifacts) -> {
String platform = "<nil>".equals(p) ? "no" : p;
artifacts.stream().collect(groupingBy(artifact -> FileType.getFileType(artifact.getPath()))).forEach((ext, matches) -> {
if (matches.size() > 1) {
errors.configuration(RB.$("validation_distributions_multiple", "distribution." + distribution.getName(), platform, ext));
}
});
});
validateBrew(context, distribution, distribution.getBrew(), errors);
validateChocolatey(context, distribution, distribution.getChocolatey(), errors);
validateDocker(context, distribution, distribution.getDocker(), errors);
validateGofish(context, distribution, distribution.getGofish(), errors);
validateJbang(context, distribution, distribution.getJbang(), errors);
validateMacports(context, distribution, distribution.getMacports(), errors);
validateScoop(context, distribution, distribution.getScoop(), errors);
validateSdkman(context, distribution, distribution.getSdkman(), errors);
validateSnap(context, distribution, distribution.getSnap(), errors);
validateSpec(context, distribution, distribution.getSpec(), errors);
}
Aggregations