Commit Graph
14 Commits
Author SHA1 Message Date
davidandClaude Opus 5.5 8e18a6238b remove_packages: remove a package's -debug package too
An AUR package built with makepkg's debug option comes with pkg-debug,
which nothing depends on, so pacman -Rns leaves it behind. voxtype-debug
then conflicts with voxtype-bin-debug, and update fails on machines
installed before voxtype-bin replaced voxtype. Found by
30-upgrade-from-baseline at 0c0ddf5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 09:04:18 -07:00
davidandClaude Opus 5.5 a2468c50f1 smoketest: send gitea.federated.computer/david's URL to the fake upstream too
install.sh at every baseline in smoketest/baselines clones from
https://gitea.federated.computer/david/coredesktop.git, which wasn't in
COREDESKTOP_URLS. So 30-upgrade-from-baseline installed today's real
upstream (via Gitea's redirect) instead of the baseline, and failed when
the old install.sh asked for files that have since gone.

Add a test that every URL install.sh has ever cloned from is in the list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 10:48:06 -07:00
davidandClaude Opus 5.5 101261bd9b update: a failing hook without run_update fails the update
shellcheck / shellcheck (push) Failing after 17s
Since a65f07c ran each hook in a subshell, a hook that does its work as
it's sourced (12-migrations, 15-services, 20-aur, 30-flatpak and others)
had its failure lost: the run_update check after source left the
subshell's status at 0, so update said "Done." and exited 0. The smoketest's
40-failing-migration caught it. update now exits the subshell with the
sourced hook's status.

Also, the smoketest scenarios that check whether a migration ran look for
"Running migration " so install.sh's "Running migrations..." heading
doesn't match (11-refresh failed on it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 08:39:54 -07:00
davidandClaude Opus 5.5 6524ff9efd smoketest: say once a minute that a command in the VM is still running
run_in_vm prints how long it has run and the log's latest line, so an
hour-long install.sh shows progress without tail -f.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 08:36:01 -07:00
davidandClaude Opus 5.5 7ae6a5c1be smoketest: don't run the pre-push hook when pushing to the VM
shellcheck / shellcheck (push) Failing after 16s
upstream_set pushes the commit under test from the working copy, so
coredesktop-dev's pre-push hook ran make check on every push to the VM.
Inside the smoketest those checks saw VM_GIT_URL and friends, the
smoketest tests pushed to the real VM and failed, and the hook stopped
the push, failing the installed image's build. The push now uses
--no-verify, and the tests clear the smoketest's variables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 07:31:55 -07:00
davidandClaude Opus 5.5 523c5b9b15 smoketest: write run_in_vm's log as the command runs
So a long command (install.sh takes an hour or more) can be followed with
tail -f; run_in_vm prints the log's path when it starts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 07:28:10 -07:00
david 2b85af286f testing harness, coredesktop-dev
shellcheck / shellcheck (push) Failing after 17s
2026-11-04 09:39:46 -07:00
david c3ac9f49d0 improve version and mirror updating
shellcheck / shellcheck (push) Failing after 14s
2026-11-04 07:08:44 -07:00
david 1d9d759fb1 Turn off Winboat container and do some sandboxing
shellcheck / shellcheck (push) Failing after 16s
2026-11-02 09:05:22 -07:00
david 448c8b43f1 fix agent networking
shellcheck / shellcheck (push) Failing after 17s
2026-11-02 08:57:45 -07:00
davidandClaude Opus 5.5 a102e6fe0b Check the machine before installing, and keep old shells' mise working
shellcheck / shellcheck (push) Successful in 11s
install.sh now stops early, with a clear message, if this isn't 64-bit
Arch, it's run as root, there's no internet, or sudo doesn't work.
system/preflight.sh then asks before going on with too little disk space
or / not on btrfs, and offers to switch another login screen to GDM and
PulseAudio to PipeWire. Keeping another login screen puts GDM in
services-off, so install and update stop failing to enable it; a
migration does the same on existing machines. It says nothing when all
is well, as refresh runs install.sh again.

Intel GPUs also get intel-media-driver for hardware video decoding, with
a migration for existing machines.

The mise migration links ~/.local/bin/mise to /usr/bin/mise instead of
deleting it, so shells opened before the update don't print an error at
every prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 08:25:46 -06:00
david 6770150b11 fix the fail2ban issues and other things
shellcheck / shellcheck (push) Successful in 11s
2026-10-31 08:10:05 -06:00
davidandClaude Opus 5.5 c6a6bac84a Merge branch 'main' of https://gitea.federated.computer/Federated_Computer/coredesktop
shellcheck / shellcheck (push) Successful in 13s
Brings in the shellcheck lint and bats tests. Both sides fixed the same
shellcheck warnings; this keeps the remote's versions of 20-aur.sh,
80-gnome-extensions.sh and .shellcheckrc, which silence false positives
per line rather than for the whole repo.

The Gitea workflow now runs make lint, so it checks the same scripts as
the Makefile, and the README points contributors at make check. The test
helper's REPO, used only by the .bats files, is marked for shellcheck,
and the update test expects the pull to be fast-forward only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 07:25:07 -06:00
davidandClaude Opus 5.5 d9da8208dd Add shellcheck lint and bats tests
make lint runs shellcheck on every tracked bash script, make test runs
the bats suite in tests/, and make check runs both. The tests cover the
update orchestrator (hook isolation, failure reporting, pull and
free-space handling) and utils.sh (migrations, package install and
removal, services, initramfs build check), using stub commands so they
never touch the real system.

Fixes from the first lint run: 20-aur.sh stops if a cd fails rather
than building or deleting in the wrong directory, and
80-gnome-extensions.sh refuses to rm -rf with an empty path. The rest
are false positives, silenced in .shellcheckrc or per line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:15:12 -06:00