From 847774470eba277e341f6770c40b4457e3ddec11 Mon Sep 17 00:00:00 2001 From: Vincent Haupert Date: Thu, 10 Nov 2022 12:23:42 +0100 Subject: [PATCH] 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. --- .../services/continuous-integration/github-runner/service.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/services/continuous-integration/github-runner/service.nix b/nixos/modules/services/continuous-integration/github-runner/service.nix index 49195410bb42..cd81631582f9 100644 --- a/nixos/modules/services/continuous-integration/github-runner/service.nix +++ b/nixos/modules/services/continuous-integration/github-runner/service.nix @@ -170,6 +170,9 @@ with lib; # 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 ];