use of org.jreleaser.model.releaser.spi.Asset in project jreleaser by jreleaser.
the class Gitlab method uploadAssets.
Collection<FileUpload> uploadAssets(String owner, String repoName, String identifier, List<Asset> assets) throws IOException, RestAPIException {
logger.debug(RB.$("git.upload.assets"), owner, repoName);
List<FileUpload> uploads = new ArrayList<>();
Project project = getProject(repoName, identifier);
for (Asset asset : assets) {
if (0 == Files.size(asset.getPath()) || !Files.exists(asset.getPath())) {
// do not upload empty or non existent files
continue;
}
logger.info(" " + RB.$("git.upload.asset"), asset.getFilename());
try {
FileUpload upload = api.uploadFile(project.getId(), toFormData(asset.getPath()));
upload.setName(asset.getFilename());
uploads.add(upload);
} catch (IOException | RestAPIException e) {
logger.error(" " + RB.$("git.upload.asset.failure"), asset.getFilename());
throw e;
}
}
return uploads;
}
use of org.jreleaser.model.releaser.spi.Asset in project jreleaser by jreleaser.
the class GitlabReleaser method createRelease.
private void createRelease(Gitlab api, String tagName, String changelog, boolean deleteTags) throws IOException {
org.jreleaser.model.Gitlab gitlab = context.getModel().getRelease().getGitlab();
Collection<LinkRequest> links = collectUploadLinks(gitlab);
if (context.isDryrun()) {
if (!assets.isEmpty()) {
for (Asset asset : assets) {
if (0 == Files.size(asset.getPath()) || !Files.exists(asset.getPath())) {
// do not upload empty or non existent files
continue;
}
context.getLogger().info(" " + RB.$("git.upload.asset"), asset.getFilename());
}
}
if (!links.isEmpty()) {
for (LinkRequest link : links) {
context.getLogger().info(" " + RB.$("git.upload.asset"), link.getName());
}
}
return;
}
if (deleteTags) {
deleteTags(api, gitlab.getOwner(), gitlab.getName(), gitlab.getIdentifier(), tagName);
}
// local tag
if (deleteTags || !gitlab.isSkipTag()) {
context.getLogger().debug(RB.$("git.releaser.repository.tag"), tagName);
GitSdk.of(context).tag(tagName, true, context);
}
Release release = new Release();
release.setName(gitlab.getEffectiveReleaseName());
release.setTagName(tagName);
release.setRef(gitlab.getBranch());
release.setDescription(changelog);
// remote tag/release
api.createRelease(gitlab.getOwner(), gitlab.getName(), gitlab.getIdentifier(), release);
if (!assets.isEmpty()) {
Collection<FileUpload> uploads = api.uploadAssets(gitlab.getOwner(), gitlab.getName(), gitlab.getIdentifier(), assets);
api.linkReleaseAssets(gitlab.getOwner(), gitlab.getName(), release, gitlab.getIdentifier(), uploads);
}
if (!links.isEmpty()) {
api.linkAssets(gitlab.getOwner(), gitlab.getName(), release, gitlab.getIdentifier(), links);
}
if (gitlab.getMilestone().isClose() && !context.getModel().getProject().isSnapshot()) {
Optional<Milestone> milestone = api.findMilestoneByName(gitlab.getOwner(), gitlab.getName(), gitlab.getIdentifier(), gitlab.getMilestone().getEffectiveName());
if (milestone.isPresent()) {
api.closeMilestone(gitlab.getOwner(), gitlab.getName(), gitlab.getIdentifier(), milestone.get());
}
}
}
use of org.jreleaser.model.releaser.spi.Asset in project jreleaser by jreleaser.
the class GiteaReleaser method createRelease.
private void createRelease(Gitea api, String tagName, String changelog, boolean deleteTags) throws IOException {
org.jreleaser.model.Gitea gitea = resolveGiteaFromModel();
if (context.isDryrun()) {
for (Asset asset : assets) {
if (0 == Files.size(asset.getPath()) || !Files.exists(asset.getPath())) {
// do not upload empty or non existent files
continue;
}
context.getLogger().info(" " + RB.$("git.upload.asset"), asset.getFilename());
}
return;
}
if (deleteTags) {
deleteTags(api, gitea.getOwner(), gitea.getName(), tagName);
}
// local tag
if (deleteTags || !gitea.isSkipTag()) {
context.getLogger().debug(RB.$("git.releaser.repository.tag"), tagName);
GitSdk.of(context).tag(tagName, true, context);
}
// remote tag/release
GtRelease release = new GtRelease();
release.setName(gitea.getEffectiveReleaseName());
release.setTagName(tagName);
release.setTargetCommitish(gitea.getBranch());
release.setBody(changelog);
release = api.createRelease(gitea.getOwner(), gitea.getName(), release);
api.uploadAssets(gitea.getOwner(), gitea.getName(), release, assets);
if (gitea.getMilestone().isClose() && !context.getModel().getProject().isSnapshot()) {
Optional<GtMilestone> milestone = api.findMilestoneByName(gitea.getOwner(), gitea.getName(), gitea.getMilestone().getEffectiveName());
if (milestone.isPresent()) {
api.closeMilestone(gitea.getOwner(), gitea.getName(), milestone.get());
}
}
}
use of org.jreleaser.model.releaser.spi.Asset in project jreleaser by jreleaser.
the class GithubReleaser method createRelease.
private void createRelease(Github api, String tagName, String changelog, boolean deleteTags) throws IOException {
org.jreleaser.model.Github github = context.getModel().getRelease().getGithub();
if (context.isDryrun()) {
for (Asset asset : assets) {
if (0 == Files.size(asset.getPath()) || !Files.exists(asset.getPath())) {
// do not upload empty or non existent files
continue;
}
context.getLogger().info(" " + RB.$("git.upload.asset"), asset.getFilename());
}
return;
}
if (deleteTags) {
deleteTags(api, github.getCanonicalRepoName(), tagName);
}
// local tag
if (deleteTags || !github.isSkipTag()) {
context.getLogger().debug(RB.$("git.releaser.repository.tag"), tagName);
GitSdk.of(context).tag(tagName, true, context);
}
// remote tag/release
GHRelease release = api.createRelease(github.getCanonicalRepoName(), tagName).commitish(github.getBranch()).name(github.getEffectiveReleaseName()).draft(github.isDraft()).prerelease(github.getPrerelease().isEnabled()).body(changelog).create();
api.uploadAssets(release, assets);
if (github.getMilestone().isClose() && !context.getModel().getProject().isSnapshot()) {
Optional<GHMilestone> milestone = api.findMilestoneByName(github.getOwner(), github.getName(), github.getMilestone().getEffectiveName());
if (milestone.isPresent()) {
api.closeMilestone(github.getOwner(), github.getName(), milestone.get());
}
}
linkDiscussion(tagName, release);
}
use of org.jreleaser.model.releaser.spi.Asset in project jreleaser by jreleaser.
the class Github method uploadAssets.
void uploadAssets(GHRelease release, List<Asset> assets) throws IOException {
for (Asset asset : assets) {
if (0 == Files.size(asset.getPath()) || !Files.exists(asset.getPath())) {
// do not upload empty or non existent files
continue;
}
logger.info(" " + RB.$("git.upload.asset"), asset.getFilename());
GHAsset ghasset = release.uploadAsset(asset.getPath().toFile(), MediaType.parse(tika.detect(asset.getPath())).toString());
if (!"uploaded".equalsIgnoreCase(ghasset.getState())) {
logger.warn(" " + RB.$("git.upload.asset.failure"), asset.getFilename());
}
}
}
Aggregations