{ lib, buildGoModule, fetchFromGitLab, fetchurl }: let version = "14.8.2"; in buildGoModule rec { inherit version; pname = "gitlab-runner"; commonPackagePath = "gitlab.com/gitlab-org/gitlab-runner/common"; ldflags = [ "-X ${commonPackagePath}.NAME=gitlab-runner" "-X ${commonPackagePath}.VERSION=${version}" "-X ${commonPackagePath}.REVISION=v${version}" ]; vendorSha256 = "1aa04hbavr0bclddp5adjwwj21sp46gbhjydxc3w7vs1siw0ivq2"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-runner"; rev = "v${version}"; sha256 = "1zwr09lrrc3xx3sp00vs30ks0n77d7v0xkz0mz9jy2qdls9nfmrv"; }; patches = [ ./fix-shell-path.patch ]; prePatch = '' # Remove some tests that can't work during a nix build # Requires to run in a git repo sed -i "s/func TestCacheArchiverAddingUntrackedFiles/func OFF_TestCacheArchiverAddingUntrackedFiles/" commands/helpers/file_archiver_test.go sed -i "s/func TestCacheArchiverAddingUntrackedUnicodeFiles/func OFF_TestCacheArchiverAddingUntrackedUnicodeFiles/" commands/helpers/file_archiver_test.go # No writable developer environment rm common/build_test.go rm executors/custom/custom_test.go # No docker during build rm executors/docker/terminal_test.go rm executors/docker/docker_test.go rm helpers/docker/auth/auth_test.go ''; preCheck = '' # Make the tests pass outside of GitLab CI export CI=0 ''; meta = with lib; { description = "GitLab Runner the continuous integration executor of GitLab"; license = licenses.mit; homepage = "https://about.gitlab.com/gitlab-ci/"; platforms = platforms.unix ++ platforms.darwin; maintainers = with maintainers; [ bachp zimbatm globin ]; }; }