Skip to content

Commit 2318490

Browse files
WVerlaekona-agent
andcommitted
Track SBOM generation time in build output
Add sbom phase timing to the 'package build succeeded' log line. Co-authored-by: Ona <no-reply@ona.com>
1 parent 0b10eee commit 2318490

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

pkg/leeway/build.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,9 +1252,12 @@ func (p *Package) build(buildctx *buildContext) (err error) {
12521252
// Generate SBOM if enabled (after packaging - written alongside artifact)
12531253
// SBOM files are stored outside the tar.gz to maintain artifact determinism.
12541254
if p.C.W.SBOM.Enabled {
1255+
pkgRep.phaseEnter[PackageBuildPhaseSBOM] = time.Now()
1256+
pkgRep.Phases = append(pkgRep.Phases, PackageBuildPhaseSBOM)
12551257
if err := writeSBOMToCache(buildctx, p, builddir); err != nil {
12561258
return err
12571259
}
1260+
pkgRep.phaseDone[PackageBuildPhaseSBOM] = time.Now()
12581261
}
12591262

12601263
// Register newly built package
@@ -1494,6 +1497,7 @@ const (
14941497
PackageBuildPhaseTest PackageBuildPhase = "test"
14951498
PackageBuildPhaseBuild PackageBuildPhase = "build"
14961499
PackageBuildPhasePackage PackageBuildPhase = "package"
1500+
PackageBuildPhaseSBOM PackageBuildPhase = "sbom"
14971501
)
14981502

14991503
type packageBuild struct {

pkg/leeway/reporter_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,37 @@ func TestConsoleReporter(t *testing.T) {
3838
r.PackageBuildStarted(pkg, "/tmp/build")
3939

4040
r.now = func() time.Time {
41-
return start.Add(5 * time.Second)
41+
return start.Add(6 * time.Second)
4242
}
4343
r.PackageBuildFinished(pkg, &PackageBuildReport{
4444
Phases: []PackageBuildPhase{
4545
PackageBuildPhasePrep,
4646
PackageBuildPhasePull,
4747
PackageBuildPhaseLint,
4848
PackageBuildPhaseTest,
49-
PackageBuildPhaseBuild},
49+
PackageBuildPhaseBuild,
50+
PackageBuildPhaseSBOM},
5051
phaseEnter: map[PackageBuildPhase]time.Time{
5152
PackageBuildPhasePrep: start,
5253
PackageBuildPhasePull: start.Add(time.Second),
5354
PackageBuildPhaseBuild: start.Add(2 * time.Second),
5455
PackageBuildPhaseTest: start.Add(3 * time.Second),
5556
PackageBuildPhaseLint: start.Add(4 * time.Second),
57+
PackageBuildPhaseSBOM: start.Add(5 * time.Second),
5658
},
5759
phaseDone: map[PackageBuildPhase]time.Time{
5860
PackageBuildPhasePrep: start.Add(time.Second),
5961
PackageBuildPhasePull: start.Add(2 * time.Second),
6062
PackageBuildPhaseBuild: start.Add(3 * time.Second),
6163
PackageBuildPhaseTest: start.Add(4 * time.Second),
6264
PackageBuildPhaseLint: start.Add(5 * time.Second),
65+
PackageBuildPhaseSBOM: start.Add(6 * time.Second),
6366
},
6467
})
6568
},
6669
Expect: Expectation{
6770
Output: `[test:test] build started (version unknown, builddir /tmp/build)
68-
[test:test] package build succeeded (5.00s) [prep: 1.0s | pull: 1.0s | lint: 1.0s | test: 1.0s | build: 1.0s]
71+
[test:test] package build succeeded (6.00s) [prep: 1.0s | pull: 1.0s | lint: 1.0s | test: 1.0s | build: 1.0s | sbom: 1.0s]
6972
`,
7073
},
7174
},

0 commit comments

Comments
 (0)