mirror of
				https://github.com/speed47/spectre-meltdown-checker.git
				synced 2025-10-31 20:50:55 +01:00 
			
		
		
		
	The `docker-compose` command has been replaced by `docker compose`. The "version" tag has also been deprecated in docker-compose.yml.
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: CI
 | |
| 
 | |
| on: [push, pull_request]
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
| 
 | |
|     runs-on: ubuntu-latest
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v1
 | |
|     - name: install prerequisites
 | |
|       run: sudo apt-get update && sudo apt-get install -y shellcheck jq sqlite3 iucode-tool
 | |
|     - name: shellcheck
 | |
|       run: shellcheck -s sh spectre-meltdown-checker.sh
 | |
|     - name: check indentation
 | |
|       run: |
 | |
|         if [ $(grep -cPv "^\t*\S|^$" spectre-meltdown-checker.sh) != 0 ]; then
 | |
|           echo "Badly indented lines found:"
 | |
|           grep -nPv "^\t*\S|^$" spectre-meltdown-checker.sh
 | |
|           exit 1
 | |
|         else
 | |
|           echo "Indentation seems correct."
 | |
|         fi
 | |
|     - name: check direct execution
 | |
|       run: |
 | |
|         expected=19
 | |
|         nb=$(sudo ./spectre-meltdown-checker.sh --batch json | jq '.[]|.CVE' | wc -l)
 | |
|         if [ "$nb" -ne "$expected" ]; then
 | |
|           echo "Invalid number of CVEs reported: $nb instead of $expected"
 | |
|           exit 1
 | |
|         else
 | |
|           echo "OK $nb CVEs reported"
 | |
|         fi
 | |
|     - name: check docker compose run execution
 | |
|       run: |
 | |
|         expected=19
 | |
|         docker compose build
 | |
|         nb=$(docker compose run --rm spectre-meltdown-checker --batch json | jq '.[]|.CVE' | wc -l)
 | |
|         if [ "$nb" -ne "$expected" ]; then
 | |
|           echo "Invalid number of CVEs reported: $nb instead of $expected"
 | |
|           exit 1
 | |
|         else
 | |
|           echo "OK $nb CVEs reported"
 | |
|         fi
 | |
|     - name: check docker run execution
 | |
|       run: |
 | |
|         expected=19
 | |
|         docker build -t spectre-meltdown-checker .
 | |
|         nb=$(docker run --rm --privileged -v /boot:/boot:ro -v /dev/cpu:/dev/cpu:ro -v /lib/modules:/lib/modules:ro spectre-meltdown-checker --batch json | jq '.[]|.CVE' | wc -l)
 | |
|         if [ "$nb" -ne "$expected" ]; then
 | |
|           echo "Invalid number of CVEs reported: $nb instead of $expected"
 | |
|           exit 1
 | |
|         else
 | |
|           echo "OK $nb CVEs reported"
 | |
|         fi
 | |
|     - name: check fwdb update
 | |
|       run: |
 | |
|         nbtmp1=$(find /tmp 2>/dev/null | wc -l)
 | |
|         ./spectre-meltdown-checker.sh --update-fwdb; ret=$?
 | |
|         if [ "$ret" != 0 ]; then
 | |
|           echo "Non-zero return value: $ret"
 | |
|           exit 1
 | |
|         fi
 | |
|         nbtmp2=$(find /tmp 2>/dev/null | wc -l)
 | |
|         if [ "$nbtmp1" != "$nbtmp2" ]; then
 | |
|           echo "Left temporary files!"
 | |
|           exit 1
 | |
|         fi
 | |
|         if ! [ -e ~/.mcedb ]; then
 | |
|           echo "No .mcedb file found after updating fwdb"
 | |
|           exit 1
 | |
|         fi
 |