-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add a GitHub action that checks for CVEs on every pull request and ni…
…ghtly
- Loading branch information
1 parent
291b05d
commit 4064826
Showing
4 changed files
with
165 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
name: nightly-cve-check | ||
|
||
on: | ||
schedule: | ||
- cron: '0 0 * * *' | ||
workflow_dispatch: | ||
jobs: | ||
nightly-cve-check: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install required packages to run nighly-cve-check | ||
run: | | ||
sudo apt-get -y install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 xz-utils zstd liblz4-tool locales | ||
echo "en_US.UTF-8 UTF-8" | sudo tee --append /etc/locale.gen | ||
sudo locale-gen | ||
- name: Checkout meta-aws | ||
uses: actions/checkout@v3 | ||
with: | ||
path: yocto_cve/meta-aws | ||
- name: Checkout meta-oe | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: openembedded/meta-openembedded | ||
path: yocto_cve/meta-openembedded | ||
- name: Checkout poky | ||
run: | | ||
cd yocto_cve/ | ||
git clone git://git.yoctoproject.org/poky --single-branch | ||
- name: Cache sstate + downloads | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
yocto_cve/build/sstate-cache | ||
yocto_cve/build/downloads | ||
key: cache-cve-sstate-downloads | ||
- name: Run CVE check | ||
run: | | ||
cd yocto_cve/ | ||
source poky/oe-init-build-env build | ||
bitbake-layers add-layer ../meta-openembedded/meta-oe | ||
bitbake-layers add-layer ../meta-openembedded/meta-python | ||
bitbake-layers add-layer ../meta-openembedded/meta-networking | ||
bitbake-layers add-layer ../meta-openembedded/meta-multimedia | ||
bitbake-layers add-layer ../meta-aws | ||
echo 'INHERIT += "cve-check"' >> conf/local.conf | ||
bitbake -c cve_check `find ../meta-aws -name *.bb -type f | sed 's!.*/!!' | sed 's!.bb!!' | sed 's!_.*!!' | sort | uniq | sed -z 's/\n/ /g'` | ||
- name: Show cve-summary.json | ||
run: | | ||
cat yocto_cve/build/tmp/log/cve/cve-summary.json | ||
- name: Check results (cve-summary.json) for unpatched CVEs | ||
shell: bash | ||
run: | | ||
jq -e '.package[] | select(.issue[].status | contains ("Unpatched") )' yocto_cve/build/tmp/log/cve/cve-summary.json > unpatched-cves.json; \ | ||
if [ $? -eq 0 ]; then echo "::error::Found unpatched CVEs in packages: $(jq -e '. | select(.issue[].status | contains ("Unpatched") ) | .name' unpatched-cves.json)" && exit 1; fi; \ | ||
if [ $? -eq 4 ] ; then echo "::notice::No unpatched CVEs found" && exit 0; fi; \ | ||
echo "::error::General error" && exit 99 | ||
- name: Generate step summary | ||
if: '!cancelled()' | ||
shell: bash | ||
run: | | ||
if [ -f unpatched-cves.json ]; then | ||
echo -e "# Found unpatched CVE(s) in package(s):" >> $GITHUB_STEP_SUMMARY | ||
cat unpatched-cves.json >> $GITHUB_STEP_SUMMARY | ||
else | ||
echo -e "# No unpatched CVE(s) found" >> $GITHUB_STEP_SUMMARY | ||
fi | ||
echo -e "# CVE-SUMMARY:\n" >> $GITHUB_STEP_SUMMARY | ||
cat yocto_cve/build/tmp/log/cve/cve-summary.json >> $GITHUB_STEP_SUMMARY | ||
- name: Save cve-summary.json | ||
if: '!cancelled()' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: cve-summary.json | ||
path: yocto_cve/build/tmp/log/cve/cve-summary.json | ||
- name: Save cve-summary | ||
if: '!cancelled()' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: cve-summary | ||
path: yocto_cve/build/tmp/log/cve/cve-summary | ||
if-no-files-found: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
name: pr-cve-check | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
branches: | ||
- 'master-next' | ||
jobs: | ||
pr-cve-check: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install required packages to run cve-check | ||
run: | | ||
sudo apt-get -y install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 xz-utils zstd liblz4-tool locales | ||
echo "en_US.UTF-8 UTF-8" | sudo tee --append /etc/locale.gen | ||
sudo locale-gen | ||
- name: Checkout meta-aws | ||
uses: actions/checkout@v3 | ||
with: | ||
path: yocto_cve/meta-aws | ||
- name: Checkout meta-oe | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: openembedded/meta-openembedded | ||
path: yocto_cve/meta-openembedded | ||
- name: Checkout poky | ||
run: | | ||
cd yocto_cve/ | ||
git clone git://git.yoctoproject.org/poky --single-branch | ||
- name: Cache sstate + downloads | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
yocto_cve/build/sstate-cache | ||
yocto_cve/build/downloads | ||
key: cache-cve-sstate-downloads | ||
- name: Run CVE check | ||
run: | | ||
cd yocto_cve/ | ||
source poky/oe-init-build-env build | ||
bitbake-layers add-layer ../meta-openembedded/meta-oe | ||
bitbake-layers add-layer ../meta-openembedded/meta-python | ||
bitbake-layers add-layer ../meta-openembedded/meta-networking | ||
bitbake-layers add-layer ../meta-openembedded/meta-multimedia | ||
bitbake-layers add-layer ../meta-aws | ||
echo 'INHERIT += "cve-check"' >> conf/local.conf | ||
bitbake -c cve_check `find ../meta-aws -name *.bb -type f | sed 's!.*/!!' | sed 's!.bb!!' | sed 's!_.*!!' | sort | uniq | sed -z 's/\n/ /g'` | ||
- name: Show cve-summary.json | ||
run: | | ||
cat yocto_cve/build/tmp/log/cve/cve-summary.json | ||
- name: Check results (cve-summary.json) for unpatched CVEs | ||
shell: bash | ||
run: | | ||
jq -e '.package[] | select(.issue[].status | contains ("Unpatched") )' yocto_cve/build/tmp/log/cve/cve-summary.json > unpatched-cves.json; \ | ||
if [ $? -eq 0 ]; then echo "::error::Found unpatched CVEs in packages: $(jq -e '. | select(.issue[].status | contains ("Unpatched") ) | .name' unpatched-cves.json)" && exit 1; fi; \ | ||
if [ $? -eq 4 ] ; then echo "::notice::No unpatched CVEs found" && exit 0; fi; \ | ||
echo "::error::General error" && exit 99 | ||
- name: Generate step summary | ||
if: '!cancelled()' | ||
shell: bash | ||
run: | | ||
if [ -f unpatched-cves.json ]; then | ||
echo -e "# Found unpatched CVE(s) in package(s):" >> $GITHUB_STEP_SUMMARY | ||
cat unpatched-cves.json >> $GITHUB_STEP_SUMMARY | ||
else | ||
echo -e "# No unpatched CVE(s) found" >> $GITHUB_STEP_SUMMARY | ||
fi | ||
echo -e "# CVE-SUMMARY:\n" >> $GITHUB_STEP_SUMMARY | ||
cat yocto_cve/build/tmp/log/cve/cve-summary.json >> $GITHUB_STEP_SUMMARY | ||
- name: Save cve-summary.json | ||
if: '!cancelled()' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: cve-summary.json | ||
path: yocto_cve/build/tmp/log/cve/cve-summary.json | ||
- name: Save cve-summary | ||
if: '!cancelled()' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: cve-summary | ||
path: yocto_cve/build/tmp/log/cve/cve-summary | ||
if-no-files-found: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters