With nix, we get more reproducable builds.
Everything that goes into making the build can be specified.
The dependencies we need for development/CI can be made the same.
And, we ought to be able to parameterize the build better.
When we want to check if things compile on 8.4.x,
we can change the compiler to that version in one place.
Assuming this works out, it should make for a lower amount of overall work.
It looks like,
when we switch jobs in CI the new checkout has newer timestamps
than what's in the make cache.
Rather than dealing with that anymore, we alter the targets.
We can change `test` to ensure builds are up to date.
Then we can leave the individual test targets to run whatever is there.
In CI this means we can set the workflow to run the tests separately.
If we don't do this, the test job will try to rebuild everything.
That defeats the purpose.
Probably, we've got our Make dependencies/targets setup improprerly.
While it would be really nice to run this from CI,
The only way to upload a package involves using account-wide credentials.
We can either use a username/password, or an API token.
Both of these credentials have the same privileges,
and that's too much power to give to CI.
For now, we run this from the local machine.
Maybe we can think of another way that's a bit safer.