🧾 BOM Diff Generator Action
A GitHub Action that compares two Bill of Materials (BOM) CSV files and generates a diff report in CSV format.
Includes support for flexible column mapping using a YAML config, and sorts the output by quantity change priority.
✨ Features
- ✅ Detects part additions, removals, and quantity changes
- 🛠 Customizable column mapping (
columns.yml) - 🔃 Output sorted by
adjusted_quantity(positives first, zeros last) - 🧠 Ignores specified part number patterns (e.g., testpoints, fiducials)
- 🧩 Simple to integrate into GitHub Actions workflows
📦 Inputs
| Name | Description | Required |
|---|---|---|
bom_old |
Path to the original BOM CSV file | ✅ |
bom_new |
Path to the updated BOM CSV file | ✅ |
column_file |
Path to the YAML file describing columns | ✅ |
out_file |
Path where diff CSV will be saved | ✅ |
🧪 Example Workflow
name: BOM Diff
on:
push:
paths:
- 'bom_test_old.csv'
- 'bom_test_new.csv'
- 'columns.yml'
jobs:
compare:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run BOM Diff Action
uses: ./ # Use relative path or replace with repo slug
with:
bom_old: bom_test_old.csv
bom_new: bom_test_new.csv
column_file: columns.yml
out_file: test_diff.csv
- name: Print Diff Output
run: cat test_diff.csv
Description