nixos/github-runners: restart service if exit code signals a retryable error

On some occasions, the GitHub runner service encounters errors which are
deemed retryable but result in the runner's termination. To signal a
retryable error, the runner exits with status code 2:

https://github.com/actions/runner/blob/40ed7f8/src/Runner.Common/Constants.cs#L146

To account for that behavior, this commit sets
`RestartForceExitStatus=2` which results in a service restart regardless
of using an ephemeral runner or not.

Changed files
+3
nixos
modules
services
continuous-integration
github-runner
+3
nixos/modules/services/continuous-integration/github-runner/service.nix
···
# If running in ephemeral mode, restart the service on-exit (i.e., successful de-registration of the runner)
# to trigger a fresh registration.
Restart = if cfg.ephemeral then "on-success" else "no";
+
# If the runner exits with `ReturnCode.RetryableError = 2`, always restart the service:
+
# https://github.com/actions/runner/blob/40ed7f8/src/Runner.Common/Constants.cs#L146
+
RestartForceExitStatus = [ 2 ];
# Contains _diag
LogsDirectory = [ systemdDir ];