Skip to content

Update snapshot tests to integrate new custom-json-diff functionality. #2

Update snapshot tests to integrate new custom-json-diff functionality.

Update snapshot tests to integrate new custom-json-diff functionality. #2

Workflow file for this run

name: Test BOM Snapshots
on:
workflow_dispatch:
pull_request:
branches:
- master
concurrency:
group: "${{ github.workflow }}-${{ github.head_ref || github.run_id }}"
cancel-in-progress: true
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/[email protected]
with:
node-version: 21
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Atom, cdxgen, sdkman, custom-json-diff installs
run: |
corepack enable
cdxgen_version=$(corepack pnpm pack | tail -1)
corepack pnpm install -g "$cdxgen_version"
python -m pip install --upgrade pip
python -m pip install pytest
git clone https://github.com/appthreat/cdxgen-samples.git /home/runner/work/samples
python -m pip install custom-json-diff
npm install -g @appthreat/atom
curl -s "https://get.sdkman.io" | bash
source "/home/runner/.sdkman/bin/sdkman-init.sh"
- name: sdkman install cache
uses: actions/cache@v4
id: sdkman-cache
with:
path: /home/runner/.sdkman/candidates
key: "${{ runner.os }}-sdkman-${{ hashFiles('test/diff/repos.csv') }}"
- name: Generate and run scripts
env:
SDKMAN_DIR: /home/runner/.sdkman
CDXGEN_DEBUG_MODE: debug
CDXGEN_LOG: /home/runner/work/cdxgen-samples/generate.log
run: |
mkdir /home/runner/work/cdxgen-samples
python test/diff/generate.py
bash /home/runner/work/cdxgen-samples/sdkman_installs.sh
bash /home/runner/work/cdxgen-samples/cdxgen_commands.sh
- name: Upload shell scripts generated as artifact
uses: actions/upload-artifact@v4
with:
name: scripts
path: /home/runner/work/cdxgen-samples/*.sh
- name: Upload cdxgen boms
uses: actions/upload-artifact@v4
with:
name: cdxgen_boms
path: |
/home/runner/work/cdxgen-samples
- name: Test BOMs
run: |
python test/diff/diff_tests.py
if test -f /home/runner/work/cdxgen-samples/diffs.json; then
echo "status=FAILED" >> "$GITHUB_ENV"
fi
- name: Upload diff
if: ${{ env.status == 'FAILED' }}
uses: actions/upload-artifact@v4
with:
path: |
/home/runner/work/cdxgen-samples/diffs.json
/home/runner/work/cdxgen-samples/*.html
- name: Exit with error
if: ${{ env.status == 'FAILED' }}
run: exit 1