Skip to content

Nightly Sanitize

Nightly Sanitize #43

name: Nightly Sanitize
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
sanitize:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install build dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y nasm make python3 qemu-system-x86 fdisk dosfstools
- name: Validate generated syscall contract
run: |
make check-syscalls-json
make check-syscalls-md
make validate-manifest
- name: Run benchmark regression checks
run: make bench-check
- name: Build benchmark trend
if: always()
run: make bench-trend
- name: Append benchmark summary
if: always()
run: |
if [ -f benchmark/latest-summary.txt ]; then
{
echo "## Nightly Benchmark Summary"
echo '```text'
cat benchmark/latest-summary.txt
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
else
echo "## Nightly Benchmark Summary" >> "$GITHUB_STEP_SUMMARY"
echo "No benchmark summary produced." >> "$GITHUB_STEP_SUMMARY"
fi
if [ -f benchmark/trend-latest.txt ]; then
{
echo "## Nightly Benchmark Trend"
echo '```text'
cat benchmark/trend-latest.txt
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
fi
- name: Upload benchmark artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: nightly-benchmark-${{ github.run_id }}
path: |
benchmark/baseline.txt
benchmark/results-*.txt
benchmark/results-*.json
benchmark/summary-*.txt
benchmark/latest-results.txt
benchmark/latest-results.json
benchmark/latest-summary.txt
benchmark/trend-latest.txt
benchmark/trend-latest.json
if-no-files-found: warn
retention-days: 30
- name: Run sanitize build and regression suite
run: make sanitize