Move release mechanics behind the public facade
This commit is contained in:
31
delivery.go
31
delivery.go
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user