1+ name : Boot Tester
2+ on :
3+ push :
4+ branches :
5+ - boot_workflow
6+ schedule :
7+ # Run twice a week: Tuesdays at 02:00 UTC and Fridays at 02:00 UTC
8+ - cron : ' 0 2 * * 2' # Tuesday at 2 AM UTC
9+ - cron : ' 0 2 * * 5' # Friday at 2 AM UTC
10+ workflow_dispatch : {}
11+ # Allow manual triggering of the workflow
12+ permissions :
13+ contents : read
14+ jobs :
15+ boot-test :
16+ runs-on : ubuntu-latest
17+ steps :
18+ - name : Checkout code
19+ uses : actions/checkout@v4
20+ with :
21+ persist-credentials : false
22+
23+ - name : Set up Docker Buildx
24+ uses : docker/setup-buildx-action@v3
25+
26+ - name : Install Earthly
27+ uses : earthly/actions-setup@v1
28+ with :
29+ github-token : ${{ secrets.GITHUB_TOKEN }}
30+ version : " latest" # or pin to a specific version like "v0.8.0"
31+
32+ - name : Install system deps
33+ run : |
34+ sudo apt-get update
35+ sudo apt-get install -y qemu-system-x86 ovmf tree jq systemd-ukify mmdebstrap systemd-boot
36+
37+ - name : Set up Go
38+ uses : actions/setup-go@v5
39+ with :
40+ go-version : stable # or a pinned version you know exists
41+
42+ - name : Copy tester script
43+ run : |
44+ if [ ! -f validate.sh ]; then
45+ echo "validate.sh not found!"
46+ exit 1
47+ fi
48+ chmod +x validate.sh
49+
50+ - name : Run build-tester
51+ run : |
52+ echo "Starting validate.sh..."
53+ # Ensure script has access to docker group for Earthly
54+ sudo usermod -aG docker $USER
55+ # Run the validation script
56+ ./validate.sh --qemu-test
57+ echo "Build and tests completed."
0 commit comments