diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix index e460ffd2590a..84c9c9268496 100644 --- a/pkgs/development/tools/continuous-integration/github-runner/default.nix +++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix @@ -1,4 +1,5 @@ { autoPatchelfHook +, autoSignDarwinBinariesHook , coreutils , curl , dotnetCorePackages @@ -6,7 +7,6 @@ , fetchFromGitHub , fetchurl , git -, glibc , icu , libkrb5 , lib @@ -40,6 +40,8 @@ let runtimeIds = { "x86_64-linux" = "linux-x64"; "aarch64-linux" = "linux-arm64"; + "x86_64-darwin" = "osx-x64"; + "aarch64-darwin" = "osx-arm64"; }; runtimeId = runtimeIds.${stdenv.system}; fakeSha1 = "0000000000000000000000000000000000000000"; @@ -61,16 +63,20 @@ stdenv.mkDerivation rec { dotnetSdk dotnetPackages.Nuget makeWrapper + ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + autoSignDarwinBinariesHook ]; buildInputs = [ curl # libcurl.so.4 libkrb5 # libgssapi_krb5.so.2 - lttng-ust # liblttng-ust.so.0 stdenv.cc.cc.lib # libstdc++.so.6 zlib # libz.so.1 icu + ] ++ lib.optionals stdenv.isLinux [ + lttng-ust # liblttng-ust.so.0 ]; patches = [ @@ -104,6 +110,8 @@ stdenv.mkDerivation rec { --replace '/bin/ln' '${coreutils}/bin/ln' ''; + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT = stdenv.isDarwin; + configurePhase = '' runHook preConfigure @@ -137,6 +145,8 @@ stdenv.mkDerivation rec { doCheck = true; + __darwinAllowLocalNetworking = true; + # Fully qualified name of disabled tests disabledTests = [ "GitHub.Runner.Common.Tests.Listener.SelfUpdaterL0.TestSelfUpdateAsync" ] @@ -195,6 +205,13 @@ stdenv.mkDerivation rec { ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [ # "JavaScript Actions in Alpine containers are only supported on x64 Linux runners. Detected Linux Arm64" "GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNodeRuntimeVersionInAlpineContainerAsync" + ] + ++ lib.optionals DOTNET_SYSTEM_GLOBALIZATION_INVARIANT [ + "GitHub.Runner.Common.Tests.ProcessExtensionL0.SuccessReadProcessEnv" + "GitHub.Runner.Common.Tests.Util.StringUtilL0.FormatUsesInvariantCulture" + "GitHub.Runner.Common.Tests.Worker.VariablesL0.Constructor_SetsOrdinalIgnoreCaseComparer" + "GitHub.Runner.Common.Tests.Worker.WorkerL0.DispatchCancellation" + "GitHub.Runner.Common.Tests.Worker.WorkerL0.DispatchRunNewJob" ]; checkInputs = [ git ]; @@ -269,7 +286,7 @@ stdenv.mkDerivation rec { # Stripping breaks the binaries dontStrip = true; - preFixup = '' + preFixup = lib.optionalString stdenv.isLinux '' patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so $out/lib/libcoreclrtraceptprovider.so ''; @@ -277,17 +294,16 @@ stdenv.mkDerivation rec { fix_rpath() { patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/lib/$1 } - wrap() { makeWrapper $out/lib/$1 $out/bin/$1 \ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (buildInputs ++ [ openssl ])} \ "''${@:2}" } - + '' + lib.optionalString stdenv.isLinux '' fix_rpath Runner.Listener fix_rpath Runner.PluginHost fix_rpath Runner.Worker - + '' + '' wrap Runner.Listener wrap Runner.PluginHost wrap Runner.Worker @@ -296,7 +312,7 @@ stdenv.mkDerivation rec { wrap config.sh --run 'export RUNNER_ROOT=''${RUNNER_ROOT:-$HOME/.github-runner}' \ --run 'mkdir -p $RUNNER_ROOT' \ - --prefix PATH : ${lib.makeBinPath [ glibc.bin ]} \ + --prefix PATH : ${lib.makeBinPath [ stdenv.cc ]} \ --chdir $out ''; @@ -308,7 +324,7 @@ stdenv.mkDerivation rec { # Inspired by passthru.fetch-deps in pkgs/build-support/build-dotnet-module/default.nix passthru.createDepsFile = writeShellApplication { name = "create-deps-file"; - runtimeInputs = [ dotnetSdk (nuget-to-nix.override { dotnet-sdk = dotnetSdk; }) ]; + runtimeInputs = [ coreutils dotnetSdk (nuget-to-nix.override { dotnet-sdk = dotnetSdk; }) ]; text = '' # Disable telemetry data export DOTNET_CLI_TELEMETRY_OPTOUT=1 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f69ba0f7d740..8b9d3a7af647 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7199,7 +7199,9 @@ with pkgs; github-backup = callPackage ../tools/misc/github-backup { }; - github-runner = callPackage ../development/tools/continuous-integration/github-runner { }; + github-runner = callPackage ../development/tools/continuous-integration/github-runner { + inherit (darwin) autoSignDarwinBinariesHook; + }; gitkraken = callPackage ../applications/version-management/gitkraken { };