Skip to content

feat: generate CycloneDX SBOM on release builds - #723

Merged
Jagadeeshftw merged 1 commit into
Stellopay:mainfrom
malaysiaonelove:feature/sbom-generation
Jul 30, 2026
Merged

feat: generate CycloneDX SBOM on release builds#723
Jagadeeshftw merged 1 commit into
Stellopay:mainfrom
malaysiaonelove:feature/sbom-generation

Conversation

@malaysiaonelove

@malaysiaonelove malaysiaonelove commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds automatic CycloneDX SBOM generation on every release (tag) build.

Closes #690

Changes

  • CI workflow (.github/workflows/ci.yml): Added sbom job gated to tag pushes (v*) that generates a CycloneDX 1.5 SBOM via @cyclonedx/cyclonedx-npm, verifies it with the new verification script, and uploads it as a GitHub Actions artifact (sbom-<tag>)
  • Verification script (scripts/verify-sbom.ts): Validates the generated SBOM is well-formed JSON, has the correct bomFormat (CycloneDX), specVersion, and root metadata.component.name (stellopay-backend)
  • Tests (scripts/verify-sbom.test.ts): 20 tests covering valid/invalid SBOMs, file I/O errors, JSON parsing errors, and result formatting
  • Coverage (vitest.config.ts): Added scripts/verify-sbom.ts to coverage includes
  • Docs (README.md): Documented SBOM generation under CI Workflows

Verification

npx vitest run scripts/verify-sbom.test.ts  # 20/20 passing

- Add SBOM job to CI workflow gated to tag pushes (v*)
- Generate CycloneDX 1.5 SBOM via @cyclonedx/cyclonedx-npm
- Upload SBOM as GitHub Actions artifact (sbom-<tag>)
- Add verification script (scripts/verify-sbom.ts) with 20 tests
- Document SBOM generation in README

closes Stellopay#690
@Jagadeeshftw
Jagadeeshftw merged commit f2e6c7d into Stellopay:main Jul 30, 2026
2 checks passed
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.

Generate and publish a CycloneDX SBOM for every release build in .github/workflows/ci.yml

2 participants