mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
Only upload the very latest full release in legacy RELEASES
This commit is contained in:
@@ -115,7 +115,6 @@ public class GitHubRepository : SourceRepository<GitHubDownloadOptions, GithubSo
|
||||
var feed = new VelopackAssetFeed {
|
||||
Assets = build.GetReleaseEntries().ToArray(),
|
||||
};
|
||||
var entries = build.GetReleaseEntries();
|
||||
var json = ReleaseEntryHelper.GetAssetFeedJson(feed);
|
||||
|
||||
await RetryAsync(async () => {
|
||||
@@ -124,12 +123,10 @@ public class GitHubRepository : SourceRepository<GitHubDownloadOptions, GithubSo
|
||||
}, "Uploading " + releasesFileName);
|
||||
|
||||
if (options.Channel == ReleaseEntryHelper.GetDefaultChannel(RuntimeOs.Windows)) {
|
||||
var ms = new MemoryStream();
|
||||
#pragma warning disable CS0618 // Type or member is obsolete
|
||||
ReleaseEntry.WriteReleaseFile(entries.Select(ReleaseEntry.FromVelopackAsset), ms);
|
||||
#pragma warning restore CS0618 // Type or member is obsolete
|
||||
var legacyReleasesContent = ReleaseEntryHelper.GetLegacyMigrationReleaseFeedString(feed);
|
||||
var legacyReleasesBytes = Encoding.UTF8.GetBytes(legacyReleasesContent);
|
||||
await RetryAsync(async () => {
|
||||
var data = new ReleaseAssetUpload("RELEASES", "application/octet-stream", new MemoryStream(ms.ToArray()), TimeSpan.FromMinutes(1));
|
||||
var data = new ReleaseAssetUpload("RELEASES", "application/octet-stream", new MemoryStream(legacyReleasesBytes), TimeSpan.FromMinutes(1));
|
||||
await client.Repository.Release.UploadAsset(release, data, CancellationToken.None);
|
||||
}, "Uploading legacy RELEASES (compatibility)");
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Text;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Velopack.Packaging;
|
||||
|
||||
@@ -85,21 +85,19 @@ public abstract class ObjectRepository<TDown, TUp, TClient> : DownRepository<TDo
|
||||
await UploadObject(client, Path.GetFileName(asset), new FileInfo(asset), true, noCache: false);
|
||||
}
|
||||
|
||||
var newReleaseFeed = new VelopackAssetFeed { Assets = releaseEntries };
|
||||
|
||||
using var _1 = Utility.GetTempFileName(out var tmpReleases);
|
||||
File.WriteAllText(tmpReleases, ReleaseEntryHelper.GetAssetFeedJson(new VelopackAssetFeed { Assets = releaseEntries }));
|
||||
File.WriteAllText(tmpReleases, ReleaseEntryHelper.GetAssetFeedJson(newReleaseFeed));
|
||||
var releasesName = Utility.GetVeloReleaseIndexName(options.Channel);
|
||||
await UploadObject(client, releasesName, new FileInfo(tmpReleases), true, noCache: true);
|
||||
|
||||
#pragma warning disable CS0612 // Type or member is obsolete
|
||||
#pragma warning disable CS0618 // Type or member is obsolete
|
||||
var legacyKey = Utility.GetReleasesFileName(options.Channel);
|
||||
using var _2 = Utility.GetTempFileName(out var tmpReleases2);
|
||||
using (var fs = File.Create(tmpReleases2)) {
|
||||
ReleaseEntry.WriteReleaseFile(releaseEntries.Select(ReleaseEntry.FromVelopackAsset).Where(entry => !entry.IsDelta), fs);
|
||||
}
|
||||
await UploadObject(client, legacyKey, new FileInfo(tmpReleases2), true, noCache: true);
|
||||
#pragma warning restore CS0618 // Type or member is obsolete
|
||||
#pragma warning restore CS0612 // Type or member is obsolete
|
||||
using var _2 = Utility.GetTempFileName(out var tmpReleases2);
|
||||
File.WriteAllText(tmpReleases2, ReleaseEntryHelper.GetLegacyMigrationReleaseFeedString(newReleaseFeed));
|
||||
await UploadObject(client, legacyKey, new FileInfo(tmpReleases2), true, noCache: true);
|
||||
|
||||
if (toDelete.Length > 0) {
|
||||
Log.Info($"Retention policy about to delete {toDelete.Length} release(s)...");
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using NuGet.Versioning;
|
||||
using Velopack.Json;
|
||||
using Velopack.NuGet;
|
||||
@@ -137,6 +138,21 @@ public class ReleaseEntryHelper
|
||||
return SimpleJson.SerializeObject(feed);
|
||||
}
|
||||
|
||||
public static string GetLegacyMigrationReleaseFeedString(VelopackAssetFeed feed)
|
||||
{
|
||||
var newestRelease = feed.Assets
|
||||
.OrderByDescending(f => f.Version)
|
||||
.Where(f => f.Type == VelopackAssetType.Full)
|
||||
.FirstOrDefault();
|
||||
|
||||
var ms = new MemoryStream();
|
||||
#pragma warning disable CS0618 // Type or member is obsolete
|
||||
ReleaseEntry.WriteReleaseFile([ReleaseEntry.FromVelopackAsset(newestRelease)], ms);
|
||||
#pragma warning restore CS0618 // Type or member is obsolete
|
||||
|
||||
return Encoding.UTF8.GetString(ms.ToArray());
|
||||
}
|
||||
|
||||
public static string GetSuggestedReleaseName(string id, string version, string channel, bool delta)
|
||||
{
|
||||
var suffix = GetUniqueAssetSuffix(channel);
|
||||
|
||||
Reference in New Issue
Block a user