bd7a11d4e7
Extract the verbatim-duplicated helpers into shared homes: - buildEnv -> plugin.BuildWorkloadEnv (base plugin pkg; a sourceName param preserves each plugin's slog prefix / log-scraper text) - idShort -> plugin.IDShort - commitStatusReporter -> staticsite.CommitStatusReporter, re-parameterized on primitives (owner/repo/sha/targetURL/enabled) so staticsite needs no dependency on the plugin package; reporter tests ported to staticsite (plus a new nil-provider case) containerNameFor/imageTagFor are intentionally left per-plugin: their prefixes differ (dw-site- vs tf-build-) and name real Docker resources, so merging them would risk mis-routing. Behavior-preserving; the static/dockerfile test suites pass unchanged. Reviewed: go APPROVE (0 CRITICAL/HIGH).
22 lines
694 B
Go
22 lines
694 B
Go
package dockerfile
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/alexei/tinyforge/internal/workload/plugin"
|
|
)
|
|
|
|
// containerNameFor is the deterministic container name. Prefix `tf-build-`
|
|
// distinguishes a dockerfile-built container from `dw-site-` (static) and
|
|
// per-stage image names at a glance in `docker ps`.
|
|
func containerNameFor(w plugin.Workload) string {
|
|
return fmt.Sprintf("tf-build-%s-%s", w.Name, plugin.IDShort(w))
|
|
}
|
|
|
|
// imageTagFor is the deterministic image tag the build step emits. Same
|
|
// shape as the container name so `docker images` shows the linkage at a
|
|
// glance.
|
|
func imageTagFor(w plugin.Workload) string {
|
|
return fmt.Sprintf("tf-build-%s-%s:latest", w.Name, plugin.IDShort(w))
|
|
}
|