Skip to content

feat(soup-sbom): optional mobile-artifact input for products with a mobile build - #57

Closed
KlausNie wants to merge 1 commit into
mainfrom
feat/soup-sbom-mobile-artifact
Closed

feat(soup-sbom): optional mobile-artifact input for products with a mobile build#57
KlausNie wants to merge 1 commit into
mainfrom
feat/soup-sbom-mobile-artifact

Conversation

@KlausNie

Copy link
Copy Markdown
Member

Summary

A product with a mobile build needs to hand its built APK/AAB to soup-discovery (SBOM_ARTIFACT_<id>), since the pipeline can't produce that artifact itself. Today the only way to do that is to inline this whole workflow's steps in the caller (checkout, ensure-gh, the discovery action) just to insert one fetch step in between — a job that calls a reusable workflow can't also have its own steps, and env vars don't cross into a separately-invoked reusable workflow's job. That inlined copy then silently drifts from this file — concretely, it would have missed the JDK/Maven step added after it was written.

mobile-artifact fixes this without duplicating anything: "<candidate-id>:<release-asset-glob>" downloads the matching release asset for the run's version, extracts it, and exports SBOM_ARTIFACT_<candidate-id> before the scan. No match is a named gap, same as leaving the input unset — consistent with how the rest of this pipeline treats an unscannable in-scope candidate.

Context

Surfaced while wiring osteocoach onto this tooling: QuickBirdEng/osteocoach#937.

…obile build

Without this, a product needing to hand a built APK/AAB to soup-discovery
(SBOM_ARTIFACT_<id>) had to inline this workflow's own steps in its
caller just to add one step in between, and silently drifts from this
file afterwards - e.g. it would have missed the JDK/Maven step added
here.

mobile-artifact: "<candidate-id>:<release-asset-glob>" downloads the
matching release asset for the run's version, extracts it, and exports
SBOM_ARTIFACT_<candidate-id> before the scan. No match is recorded as
a named gap, same as leaving the input unset - consistent with how the
rest of this pipeline treats an unscannable in-scope candidate.
@KlausNie KlausNie closed this Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant