Move release mechanics behind the public facade

This commit is contained in:
2026-10-06 00:58:22 +00:00
parent b4d348dd1f
commit 4dee2841e0
10 changed files with 78 additions and 80 deletions

View File

@@ -2,8 +2,8 @@ package releasekit
import (
"context"
"fmt"
internalbuild "gitea.maximumdirect.net/eric/ReleaseKit/internal/build"
internaldelivery "gitea.maximumdirect.net/eric/ReleaseKit/internal/delivery"
"gitea.maximumdirect.net/eric/ReleaseKit/internal/gitea"
)
@@ -66,33 +66,9 @@ type DeliveryResult struct {
// finds its release page and adds any missing declared build assets.
func Deliver(ctx context.Context, request DeliveryRequest) (DeliveryResult, error) {
result := DeliveryResult{Version: request.Version, State: DeliveryNotAttempted}
var build *internaldelivery.BuildIdentity
var assets []gitea.ExpectedAsset
var build *internalbuild.Result
if request.Build != nil {
if len(request.Build.Targets) == 0 {
if len(request.Build.Artifacts) != 0 {
return result, fmt.Errorf("page-only build result contains artifacts")
}
} else {
var err error
assets, err = declaredBuildAssets(*request.Build)
if err != nil {
return result, err
}
targets := make([]string, 0, len(request.Build.Targets))
for _, target := range request.Build.Targets {
targets = append(targets, target.OS+"/"+target.Arch)
}
build = &internaldelivery.BuildIdentity{
RepositoryDir: request.Build.RepositoryDir,
CandidateCommit: request.Build.CandidateCommit,
SourceVerified: request.Build.SourceVerified,
Version: request.Build.Version,
MainPackage: request.Build.MainPackage,
BinaryName: request.Build.BinaryName,
Targets: targets,
}
}
build = internalBuildResult(*request.Build)
}
destination := gitea.Destination{
BaseURL: request.Destination.BaseURL, Owner: request.Destination.Owner,
@@ -104,7 +80,6 @@ func Deliver(ctx context.Context, request DeliveryRequest) (DeliveryResult, erro
Version: request.Version,
Destination: destination,
Build: build,
Assets: assets,
})
result.CandidateCommit = internalResult.CandidateCommit
result.ReleaseURL = internalResult.ReleaseURL