liveBook · Manning

Software bill of materials

As explained in GitHub Actions in Action: Continuous integration and delivery for DevOps

A software bill of materials is a structured inventory of the components and dependencies contained in a software product.

A software bill of materials (SBOM) is a structured inventory of the components and dependencies contained in a software product. It supports delivery integrity by making the files and artifacts used in a workflow traceable and resistant to unnoticed alteration. section 8.5.2

Use an SBOM to strengthen artifact preparation and release workflows:

  • Generate it during the workflow that prepares software artifacts, rather than relying only on a manual or user-interface operation. section 8.5.2
  • Create it with a GitHub Action or an available marketplace action, then retain it with the release as an artifact. section 8.5.2
  • Choose and recognize the interchange format: SPDX is used by Microsoft and GitHub, while CycloneDX is another competing standard. section 8.5.2
  • Treat the SBOM as one layer in broader supply-chain security alongside dependency vulnerability alerts, secret scanning, and code analysis. section 1.1

Generate an SBOM before deployment

A workflow can download and run Microsoft's SBOM tool against the build output, supplying package name, version, publisher, namespace, and verbose output settings. The resulting SPDX-compatible inventory can then be uploaded as part of the release. section 8.5.2

Listing 8.7 Generating an SBOM using the Microsoft SBOM tool
name: Generate SBOM
      run: |
        curl -Lo $RUNNER_TEMP/sbom-tool https://github.com/microsoft/sbom-tool/releases/latest/download/sbom-tool-linux-x64
        chmod +x $RUNNER_TEMP/sbom-tool
        $RUNNER_TEMP/sbom-tool generate -b ./buildOutput -bc . -pn Test -pv 1.0.0 -ps mycompany -nsb https://sbom.mycompany.com -V Verbose

Inspect the complete command sequence for downloading Microsoft's SBOM tool and generating an inventory from buildOutput. section 8.5.2

How GitHub Actions in Action: Continuous integration and delivery for DevOps covers it

How deep it goes
Explains workflow generation, SPDX output, and release storage, but does not detail SBOM validation or dependency analysis.
Examples
Uses Microsoft's SBOM tool in a GitHub Actions workflow to inventory buildOutput and produce release-ready package data.
What it assumes
Assumes familiarity with CI/CD workflows, software artifacts, and deployment preparation; introduces SBOM generation and interchange formats.
What you can do after
Build an SBOM with Microsoft's tool in a GitHub Actions workflow and attach it to a software release.
How it connects
Connects SBOMs with CI/CD, software artifacts, supply-chain security, SPDX, CycloneDX, and dependency vulnerability detection.

Also explained in

Compare how 2 books explain software bill of materials →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of GitHub Actions in Action: Continuous integration and delivery for DevOps. The section links point to the parts of the book it draws on.