The patterns mesh-build-node and mesh-build-image matched the command directory, so publish.go and its test were never committed and the branch did not compile. Anchored to the binaries now. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
30 lines
1.2 KiB
Go
30 lines
1.2 KiB
Go
package main
|
|
|
|
// The publish of a done build's file (novox/hq design 51 *Publishing*, ADR 0611; CAT-BN3): from this module's own
|
|
// process, after the build step ended, through a registry seat's verbs publish and publish-part, which the manifest
|
|
// `invokes`, with the build modules' one sender (buildstep.PublishOne): a bundle's archive on oci-artifact-registry, a
|
|
// trunk package on npm-package-registry under the version the builder gave it. No build step reaches a store, and this
|
|
// module holds no write credential: the holder checks the build with the builder and says published or refused.
|
|
|
|
import (
|
|
"context"
|
|
|
|
stdio "git.novox.be/novox/mesh-sdk/go"
|
|
|
|
"git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep"
|
|
)
|
|
|
|
// publishOn publishes body, of digest, as name (at version, when it has one) of kind on seat: through Call when a
|
|
// test set it, else the runtime's request over the bus (stdio.Ask).
|
|
func (m *Module) publishOn(ctx context.Context, seat, name, kind, version, digest string, body []byte) error {
|
|
call := m.Call
|
|
if call == nil {
|
|
call = stdio.Ask
|
|
}
|
|
q := kind
|
|
if version != "" {
|
|
q = "v" + version
|
|
}
|
|
return buildstep.PublishOne(ctx, call, seat, name, kind, version, digest, buildstep.TransferName(name, q, digest), body)
|
|
}
|