This is much, MUCH faster than the existing solution, especially on large channels.
It can be made even faster if we actually reuse anything whatsoever, but this is
a massive improvement in itself.
This allows to override the default TTL on Fastly. Let it know what
these objects should be refreshed more often.
FixesNixOS/nixos-org-configurations#169
Passing a list of parameters to `system` automatically gives us peace of
mind with regards to shell escaping. This is because it will not rely on
a shell invocation to run the given parameters, but directly exec to it.
The left-over shell invocations all use redirection.
They are thin wrappers over `system`, but two main points:
* They log the (unescaped) command.
* `run` will auto-die.
This removes the need to pepper `== 0 or die` in the script.
Resolving the values and being fancy is harder than the actual benefits
would give out.
Return all the info we have, and let the pager'd person deal with the
data.
A more durable solution would likely be to make a generic function that
wraps backticks and fails when $? is non-zero, rather than doing it
in-situ. There are other backtick uses that may be problematic
Prometheus now has a configured alert if an update job fails for a
while. Going back in time is not so unusual:
1. a hydra evaluation completes with some failed jobs
2. the channel advances to this commit
3. an admin restarts a failed job
4. the channel would go backward because the evaluation is complete
Since it is not a problem, make it a non-problematic exit code.
PRs to NixOS are a bit confused about if they should PR to release-* or nixos-* or nixpkgs-*. I think namespacing the refs will go a long way in making it more obvious.
From the nix 2.2 changelog:
> nix hash-file and nix hash-path now print hashes in SRI
> format by default. They also use SHA-256 by default
> instead of SHA-512 because that's what we use most of the
> time in Nixpkgs.