ci: add guarded manual root disk expansion for the Lean runner
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
name: runner-storage-maintenance
|
||||
|
||||
# Manual-only. Never runs on push or pull_request.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
confirm:
|
||||
description: Enter EXPAND_RUNNER_ROOT after owner approval
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
expand-root:
|
||||
if: ${{ github.event_name == 'workflow_dispatch' && inputs.confirm == 'EXPAND_RUNNER_ROOT' }}
|
||||
runs-on: ubuntu24.04-x64-lean4.35
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Back up partition table and expand the authorized ext4 root
|
||||
run: |
|
||||
# Owner-authorized manual-only root partition/filesystem expansion.
|
||||
set -euo pipefail
|
||||
exec 9>/var/lock/lean-bench-root-maintenance.lock
|
||||
flock -n 9
|
||||
[ "$(hostname)" = "iZ6we8b3jgd6nc2qehu06lZ" ]
|
||||
[ "$(id -u)" = 0 ]
|
||||
[ "$(blkid -s PARTUUID -o value /dev/nvme0n1p3 | tr A-Z a-z)" = 9b694bad-5bbb-4485-860f-e5544ae47410 ]
|
||||
[ "$(findmnt -n -o SOURCE /)" = /dev/nvme0n1p3 ]
|
||||
[ "$(findmnt -n -o FSTYPE /)" = ext4 ]
|
||||
[ "$(lsblk -n -o START /dev/nvme0n1p3 | tr -d ' ')" = 413696 ]
|
||||
[ "$(blockdev --getsize64 /dev/nvme0n1)" -ge 161061273600 ]
|
||||
backup_dir="/root/lean-bench-maintenance/$(date -u +%Y%m%dT%H%M%SZ)"
|
||||
install -d -m 700 "$backup_dir"
|
||||
sfdisk --dump /dev/nvme0n1 > "$backup_dir/nvme0n1.sfdisk"
|
||||
sync
|
||||
printf 'Partition-table backup: %s\n' "$backup_dir/nvme0n1.sfdisk"
|
||||
set +e
|
||||
growpart -N /dev/nvme0n1 3 > "$backup_dir/growpart-dry-run.log" 2>&1
|
||||
probe_status=$?
|
||||
set -e
|
||||
if [ "$probe_status" = 0 ]; then
|
||||
growpart /dev/nvme0n1 3
|
||||
elif ! grep -q '^NOCHANGE:' "$backup_dir/growpart-dry-run.log"; then
|
||||
cat "$backup_dir/growpart-dry-run.log"
|
||||
exit "$probe_status"
|
||||
fi
|
||||
resize2fs /dev/nvme0n1p3
|
||||
[ "$(lsblk -n -o START /dev/nvme0n1p3 | tr -d ' ')" = 413696 ]
|
||||
lsblk -e 7 -o NAME,PATH,SIZE,FSTYPE,MOUNTPOINTS
|
||||
df -hT / /var/lib/docker
|
||||
Reference in New Issue
Block a user