Some DEB822 files are replacing the old sources.list files, which required fixes for cross-compiling environments. The Azure package cache only contains amd64/i386 binaries, but the GitHub images don't restrict them.
This is the easiest path to supporting building for non-LTS
distributions. It would also allow us to build properly for Debian.
* Removes the invalid readme from server/Cargo.toml. The file doesn't
exist, causing Cargo builds to fail.
* Skips cross builds for missing archs.
* Skips cross-build test if the corresponding distribution isn't part
of the workflow.
* When using /etc/apt/apt-mirrors.txt with arch filters, something
seems to be causing apt-get to go into an infinte loop, despite
downloading things.
* Bumps raspio_lite:latest to jammy, since the current one is based on Debian Bookworm.
This also refactors the workflow a bit to only run the reprepro job
once, for all DEBs.
Since cross-builds are scary, this also adds a QEMU test job for
them, to ensure they can be installed and the binary can execute.
The two build jobs are kept separate, even if they have lots of
overlap, so that testing can start without waiting for native builds.
Thanks to
* @bensteinberg for providing his build script.
* https://github.com/kornelski/cargo-deb#cross-compilation
* https://github.com/marketplace/actions/arm-runnerCloses#2.
GitHub actions outputs don't jive well with matrices for `runs-on`. They overwrite without warning. Switch to running update checks in a singleton job, and then add which distros need updating.