Skip to content

Commit cdb2518

Browse files
leodidoona-agent
andcommitted
fix: move provenance handling after packaging phase
Ensures provenance subjects accurately reflect the final artifact contents by computing them after the packaging phase removes temporary build artifacts like _deps/. Previously, subjects were computed before packaging, causing a mismatch where provenance included files (e.g., _deps/) that were not present in the final tar.gz artifact. Co-authored-by: Ona <no-reply@ona.com>
1 parent 0310cee commit cdb2518

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

pkg/leeway/build.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,32 +1051,13 @@ func (p *Package) build(buildctx *buildContext) (err error) {
10511051
}
10521052
}
10531053

1054-
// Handle provenance subjects
1055-
if p.C.W.Provenance.Enabled {
1056-
if err := handleProvenance(p, buildctx, builddir, bld, sources, now); err != nil {
1057-
return err
1058-
}
1059-
}
1060-
1061-
// Generate SBOM if enabled
1054+
// Generate SBOM if enabled (before packaging)
10621055
if p.C.W.SBOM.Enabled {
10631056
if err := writeSBOM(buildctx, p, builddir); err != nil {
10641057
return err
10651058
}
10661059
}
10671060

1068-
// Handle test coverage if available
1069-
if bld.TestCoverage != nil {
1070-
coverage, funcsWithoutTest, funcsWithTest, err := bld.TestCoverage()
1071-
if err != nil {
1072-
return err
1073-
}
1074-
pkgRep.TestCoverageAvailable = true
1075-
pkgRep.TestCoveragePercentage = coverage
1076-
pkgRep.FunctionsWithoutTest = funcsWithoutTest
1077-
pkgRep.FunctionsWithTest = funcsWithTest
1078-
}
1079-
10801061
// Package the build results
10811062
if len(bld.Commands[PackageBuildPhasePackage]) > 0 {
10821063
if err := executeCommandsForPackage(buildctx, p, builddir, bld.Commands[PackageBuildPhasePackage]); err != nil {
@@ -1092,6 +1073,25 @@ func (p *Package) build(buildctx *buildContext) (err error) {
10921073
}
10931074
}
10941075

1076+
// Handle provenance subjects (after packaging - artifact now exists)
1077+
if p.C.W.Provenance.Enabled {
1078+
if err := handleProvenance(p, buildctx, builddir, bld, sources, now); err != nil {
1079+
return err
1080+
}
1081+
}
1082+
1083+
// Handle test coverage if available
1084+
if bld.TestCoverage != nil {
1085+
coverage, funcsWithoutTest, funcsWithTest, err := bld.TestCoverage()
1086+
if err != nil {
1087+
return err
1088+
}
1089+
pkgRep.TestCoverageAvailable = true
1090+
pkgRep.TestCoveragePercentage = coverage
1091+
pkgRep.FunctionsWithoutTest = funcsWithoutTest
1092+
pkgRep.FunctionsWithTest = funcsWithTest
1093+
}
1094+
10951095
// Register newly built package
10961096
return buildctx.RegisterNewlyBuilt(p)
10971097
}

0 commit comments

Comments
 (0)