diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 98267fd..294fcbf 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -3,10 +3,15 @@ name: Build RPi image # Yocto (kas) build of rpilinux-image for raspberrypi4-64. # # Runner requirements (see chat/notes): -# - label "yocto:host" (host job: Yocto needs ~250GB persistent disk, -# container jobs are not suitable) +# - matches the instance runner's "ubuntu-latest" label (bare label = job +# runs on the runner's machine, i.e. a host job). Yocto needs ~250GB +# persistent disk, so the runner must actually be a machine (or a +# container with a big persistent volume), not a throwaway sandbox. # - ~250GB free in $HOME, plus the poky host dependencies + node # - runner.timeout >= 8h for the first build (runner default is 3h) +# +# Upgrade path: register a dedicated runner with label "yocto:host" and +# change runs-on below to "yocto". on: push: @@ -23,13 +28,21 @@ permissions: jobs: build: - runs-on: yocto + runs-on: ubuntu-latest timeout-minutes: 600 steps: - uses: builtin:checkout - - name: Probe host dependencies + - name: Probe environment and host dependencies run: | + echo "=== runner environment ===" + uname -a + [ -r /etc/os-release ] && . /etc/os-release && echo "$PRETTY_NAME" + echo "HOME=$HOME nproc=$(nproc)" + df -h "$HOME" | tail -1 + free -h 2>/dev/null | sed -n 2p || true + command -v docker >/dev/null && docker info --format 'docker: {{.ServerVersion}}' 2>/dev/null || echo "no docker daemon" + echo "=== dependency check ===" set -e missing="" for t in git python3 curl wget rsync gawk xz diffstat chrpath node npm; do