Validate representative ReleaseKit consumers

This commit is contained in:
2026-10-06 20:15:14 +00:00
parent 21294404d7
commit 55333b08ae
6 changed files with 123 additions and 9 deletions

View File

@@ -54,6 +54,51 @@ func TestDeliverManagedBuildUploadsArtifactsAndCleansTemporaryOutput(t *testing.
}
}
func TestDeliverBinaryConsumerWithBuildinfoAndSelectedTargets(t *testing.T) {
repository := newTaggedDeliveryConsumer(t)
server, remote := newFacadeDeliveryServer(t, repository)
defer server.Close()
var progress strings.Builder
result, err := releasekit.Deliver(context.Background(), releasekit.DeliveryRequest{
RepositoryDir: repository,
Product: "Fixture",
Version: "v1.2.3",
Destination: facadeDeliveryDestination(server.URL),
Build: &releasekit.BuildSpec{
MainPackage: "./cmd/app",
BinaryName: "fixture",
Targets: []releasekit.Target{
{OS: "linux", Arch: "amd64"},
{OS: "linux", Arch: "arm64"},
},
},
Output: &progress,
})
if err != nil {
t.Fatalf("Deliver() error = %v; result = %#v", err, result)
}
if result.State != releasekit.DeliveryComplete || result.CandidateCommit != remote.commit {
t.Fatalf("delivery result = %#v", result)
}
wantAssets := []string{
"fixture-v1.2.3-linux-amd64",
"fixture-v1.2.3-linux-arm64",
"SHA256SUMS",
}
if len(result.Uploaded) != len(wantAssets) || len(remote.assets) != len(wantAssets) {
t.Fatalf("uploaded = %#v; hosted assets = %v", result.Uploaded, mapKeys(remote.assets))
}
for _, name := range wantAssets {
if _, ok := remote.assets[name]; !ok {
t.Errorf("hosted assets omit %q: %v", name, mapKeys(remote.assets))
}
}
if !strings.Contains(progress.String(), "checking fixture version output") {
t.Fatalf("build progress = %q", progress.String())
}
}
func TestDeliverPrebuiltArtifactsRemainCallerOwned(t *testing.T) {
repository := newTaggedDeliveryConsumer(t)
outputDir := filepath.Join(t.TempDir(), "caller-owned-assets")