Skip to content

Commit faded4a

Browse files
committed
generate yocto bom
1 parent 6efbf5c commit faded4a

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

Diff for: .github/workflows/phase_3_yocto.yml

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
name: Phase 3 - Yocto
3+
on:
4+
push:
5+
paths:
6+
- .github/workflows/phase_3_yocto.yml
7+
8+
env:
9+
YOCTO_TAG: styhead-5.1.1
10+
SBOMQS_VERSION: 0.1.9
11+
12+
jobs:
13+
Generate:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Setup Environment
17+
run: |
18+
sudo apt update
19+
sudo apt install -y gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1
20+
pip3 install websockets
21+
sudo locale-gen en_US.UTF-8
22+
- name: Checkout Yocto
23+
run: |
24+
git clone git://git.yoctoproject.org/poky
25+
cd poky
26+
git checkout ${YOCTO_TAG}
27+
- name: Build Yocto
28+
run: |
29+
cd poky
30+
source oe-init-build-env
31+
echo "BB_NUMBER_THREADS=\"8\"" >> conf/local.conf
32+
echo "PARALLEL_MAKE=\"-j 8\"" >> conf/local.conf
33+
echo "INHERIT += \"rm_work\"" >> conf/local.conf
34+
echo "BB_HASHSERVE = \"auto\"" >> conf/site.conf
35+
echo "BB_HASHSERVE_UPSTREAM = \"wss://hashserv.yoctoproject.org/ws\"" >> conf/site.conf
36+
echo "SPDX_PRETTY = \"1\"" >> conf/local.conf
37+
echo -e "SSTATE_MIRRORS = \" \\ \nfile://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH \\\n \\ \nfile://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \\\n \\ \n\"" >> conf/site.conf
38+
bitbake core-image-minimal
39+
40+
- name: Upload Generated SPDX SBOM
41+
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
42+
with:
43+
name: generated-yocto-sbom-spdx
44+
path: "poky/build/tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.rootfs.spdx.json"
45+
Augment:
46+
runs-on: ubuntu-latest
47+
needs: Generate
48+
steps:
49+
50+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
51+
52+
- name: Download all workflow run artifacts
53+
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
54+
55+
- name: Upload Augmented SPDX SBOM
56+
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
57+
with:
58+
name: augmented-yocto-sbom-spdx
59+
path: "/tmp/augmented_yocto-sbom.spdx.json"
60+
61+
Enrich:
62+
runs-on: ubuntu-latest
63+
needs: Augment
64+
steps:
65+
66+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
67+
68+
- name: Download all workflow run artifacts
69+
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
70+
71+
- name: Save Final SBOMs
72+
run: |
73+
cp /tmp/enriched_yocto-sbom.spdx.json /tmp/final_yocto-sbom.spdx.json
74+
75+
- name: Upload Final SPDX SBOM
76+
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
77+
with:
78+
name: final-yocto-sbom-spdx
79+
path: "/tmp/final_yocto-sbom.spdx.json"
80+
81+
Validate:
82+
needs: Enrich
83+
runs-on: ubuntu-latest
84+
steps:
85+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
86+
87+
- name: Download SBOMs
88+
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
89+
90+
- name: Install sbomqs
91+
run: |
92+
curl -L -o /tmp/sbomqs \
93+
"https://github.com/interlynk-io/sbomqs/releases/download/v${SBOMQS_VERSION}/sbomqs-linux-amd64"
94+
chmod +x /tmp/sbomqs
95+
96+
- name: "Display SBOM quality score through sbomqs"
97+
run: |
98+
echo \`\`\` >> ${GITHUB_STEP_SUMMARY}
99+
for SBOM in $(find . -iname final*.json); do
100+
/tmp/sbomqs score "$SBOM" >> ${GITHUB_STEP_SUMMARY}
101+
done
102+
echo \`\`\` >> ${GITHUB_STEP_SUMMARY}

0 commit comments

Comments
 (0)