use of org.jreleaser.model.RepositoryTap in project jreleaser by jreleaser.
the class AbstractRepositoryPackagerProcessor method doPublishDistribution.
protected void doPublishDistribution(Distribution distribution, Map<String, Object> props) throws PackagerProcessingException {
RepositoryTap tap = packager.getRepositoryTap();
if (!tap.isEnabled()) {
context.getLogger().info(RB.$("repository.disabled"), tap.getCanonicalRepoName());
return;
}
context.getLogger().info(RB.$("repository.setup"), tap.getCanonicalRepoName());
if (context.isDryrun()) {
return;
}
GitService gitService = context.getModel().getRelease().getGitService();
try {
// get the repository
context.getLogger().debug(RB.$("repository.locate"), tap.getCanonicalRepoName());
Repository repository = context.getReleaser().maybeCreateRepository(tap.getOwner(), tap.getResolvedName(), resolveGitToken(gitService));
UsernamePasswordCredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider(resolveGitUsername(gitService), resolveGitToken(gitService));
// clone the repository
context.getLogger().debug(RB.$("repository.clone"), repository.getHttpUrl());
Path directory = Files.createTempDirectory("jreleaser-" + tap.getResolvedName());
Git git = Git.cloneRepository().setCredentialsProvider(credentialsProvider).setBranch(tap.getBranch()).setDirectory(directory.toFile()).setURI(repository.getHttpUrl()).call();
prepareWorkingCopy(props, directory, distribution);
// add everything
git.add().addFilepattern(".").call();
props.putAll(distribution.props());
context.getModel().getRelease().getGitService().fillProps(props, context.getModel());
// setup commit
context.getLogger().debug(RB.$("repository.commit.setup"));
CommitCommand commitCommand = git.commit().setAll(true).setMessage(packager.getRepositoryTap().getResolvedCommitMessage(props)).setAuthor(packager.getCommitAuthor().getName(), packager.getCommitAuthor().getEmail());
commitCommand.setCredentialsProvider(credentialsProvider);
boolean signingEnabled = gitService.isSign();
String signingKey = "**********";
JReleaserGpgSigner signer = new JReleaserGpgSigner(context, signingEnabled);
commitCommand = commitCommand.setSign(signingEnabled).setSigningKey(signingKey).setGpgSigner(signer);
commitCommand.call();
String tagName = tap.getResolvedTagName(props);
context.getLogger().debug(RB.$("git.releaser.repository.tag"), tagName);
git.tag().setSigned(signingEnabled).setSigningKey(signingKey).setGpgSigner(signer).setName(tagName).setForceUpdate(true).call();
context.getLogger().info(RB.$("repository.push"), tap.getCanonicalRepoName());
// push commit
context.getLogger().debug(RB.$("repository.commit.push"));
git.push().setDryRun(false).setPushAll().setCredentialsProvider(credentialsProvider).setPushTags().call();
} catch (Exception e) {
throw new PackagerProcessingException(RB.$("ERROR_unexpected_repository_update", tap.getCanonicalRepoName()), e);
}
}
Aggregations