Skip to content

Commit 335de30

Browse files
committed
fix: workflow binary path, digest format; pipeline exports CA cert in attest-only mode
1 parent dd2b968 commit 335de30

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

.github/workflows/assayward-gate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525

2626
- name: Self-attest with forgeseal pipeline
2727
run: |
28-
./forgeseal pipeline \
28+
./bin/forgeseal pipeline \
2929
--dir . \
3030
--output-dir ./forgeseal-output \
3131
--sign \
@@ -35,7 +35,7 @@ jobs:
3535
- name: Compute artifact digest
3636
id: digest
3737
run: |
38-
DIGEST=$(sha256sum ./forgeseal 2>/dev/null || sha256sum ./bin/forgeseal 2>/dev/null || echo "sha256:unknown")
38+
DIGEST="sha256:$(sha256sum ./bin/forgeseal 2>/dev/null | awk '{print $1}' || echo 'unknown')"
3939
echo "value=$DIGEST" >> "$GITHUB_OUTPUT"
4040
4141
- name: Obtain svidmint SVID

internal/cli/pipeline.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ func runPipeline(cmd *cobra.Command, args []string) error {
131131
}
132132

133133
// Step 2: Sign SBOM
134+
caExported := false
134135
if doSign {
135136
if !quiet {
136137
fmt.Fprintln(os.Stderr, "Step 2/4: Signing SBOM...")
@@ -153,6 +154,7 @@ func runPipeline(cmd *cobra.Command, args []string) error {
153154
if err := keyedSigner.ExportCATo(outputDir); err != nil {
154155
return fmt.Errorf("exporting CA cert: %w", err)
155156
}
157+
caExported = true
156158
if !quiet {
157159
fmt.Fprintf(os.Stderr, " CA cert exported to %s/forgeseal-signing-ca.crt\n", outputDir)
158160
}
@@ -202,6 +204,16 @@ func runPipeline(cmd *cobra.Command, args []string) error {
202204
if err := signing.WriteBundle(signResult.Bundle, bundlePath); err != nil {
203205
return fmt.Errorf("writing attestation signature: %w", err)
204206
}
207+
// Export CA cert here if it wasn't already exported during SBOM signing
208+
// (e.g. if SBOM signing was skipped or failed before ExportCATo was reached)
209+
if keyed && !caExported {
210+
if err := keyedSigner.ExportCATo(outputDir); err != nil {
211+
return fmt.Errorf("exporting CA cert: %w", err)
212+
}
213+
if !quiet {
214+
fmt.Fprintf(os.Stderr, " CA cert exported to %s/forgeseal-signing-ca.crt\n", outputDir)
215+
}
216+
}
205217
}
206218
}
207219
}

0 commit comments

Comments
 (0)