patch hydra instead of using forked repos
This commit is contained in:
parent
172b40f193
commit
4e002f8751
|
@ -111,7 +111,7 @@ ACTION=="add", SUBSYSTEM=="tty", \
|
|||
];
|
||||
services.hydra = {
|
||||
enable = true;
|
||||
package = pkgs.callPackage ./hydra.nix {};
|
||||
package = pkgs.hydra.overrideAttrs(oa: { patches = oa.patches ++ [ ./hydra-conda.patch ./hydra-retry.patch ]; } );
|
||||
useSubstitutes = true;
|
||||
hydraURL = "https://nixbld.m-labs.hk";
|
||||
notificationSender = "hydra@m-labs.hk";
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
commit 5aa5f8d5742883d41d7278a2c8bc2c9a2ddfef45
|
||||
Author: Sebastien Bourdeauducq <sb@m-labs.hk>
|
||||
Date: Sun Apr 14 18:25:27 2019 +0800
|
||||
|
||||
add SVG icon for conda package
|
||||
|
||||
diff --git a/src/root/product-list.tt b/src/root/product-list.tt
|
||||
index 298d0a66..85914bbd 100644
|
||||
--- a/src/root/product-list.tt
|
||||
+++ b/src/root/product-list.tt
|
||||
@@ -157,6 +157,11 @@
|
||||
<img src="[% c.uri_for("/static/images/debian.png") %]" alt="DEB" />
|
||||
</td>
|
||||
<td>Debian package</td>
|
||||
+ [% CASE "conda" %]
|
||||
+ <td>
|
||||
+ <img src="[% c.uri_for("/static/images/conda.svg") %]" width="32" height="32" alt="Conda" />
|
||||
+ </td>
|
||||
+ <td>Conda package</td>
|
||||
[% CASE "iso" %]
|
||||
<td>
|
||||
<img src="[% c.uri_for("/static/images/iso.png") %]" alt="ISO" />
|
||||
diff --git a/src/root/static/images/conda.svg b/src/root/static/images/conda.svg
|
||||
new file mode 100644
|
||||
index 00000000..67859731
|
||||
--- /dev/null
|
||||
+++ b/src/root/static/images/conda.svg
|
||||
@@ -0,0 +1,18 @@
|
||||
+<svg width="128" height="128" style="enable-background:new 0 0 128 128;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
+ <g id="g2">
|
||||
+ <g>
|
||||
+ <path d="M118.89,75.13c-1.31-2.72-3.46-5.53-6.97-7.33c-2.37-1.48-4.57-2.24-6.01-2.63 c1.53-5.6-0.64-10.06-3.69-13.39c-4.53-4.88-9.27-5.59-9.27-5.59l-0.01,0c1.56-3.03,2.15-6.54,1.36-9.99 c-1-4.26-3.29-6.94-6.31-8.73c-3.09-1.83-6.91-2.73-10.83-3.43c-1.88-0.34-9.81-1.45-13.1-6c-2.65-3.69-2.73-10.33-3.45-12.32 c-0.77-2.05-3.38-1.15-6.23,0.76c-3.33,2.22-10.23,9.35-12.89,16.49c-2.03,5.47-2.08,10.21-1.28,13.89 c-3.29,0.55-5.76,1.66-6.23,1.88c-0.16,0.05-0.32,0.1-0.49,0.17c-3.01,1.24-9.43,7.02-10.01,15.85c-0.2,3.14,0.21,6.31,1.2,9.26 c-3.94,1.1-6.22,2.54-6.26,2.57c-2,0.75-5.18,2.95-6.15,4.13c-1.97,2.38-3.34,5.21-4.15,8.18C6.35,85.36,7,92.71,10.14,98.67 c1.74,3.31,4.12,6.83,6.74,9.52c8.55,8.79,23.31,12.11,34.96,14.03c14.19,2.34,29.05,1.52,42.33-3.97 c19.92-8.22,25.22-21.44,26-25.17C121.92,84.77,119.8,77,118.89,75.13z" style="fill:#865D53;"/>
|
||||
+ <g>
|
||||
+ <g>
|
||||
+ <ellipse cx="85.95" cy="66.39" rx="16.61" ry="15.5" style="fill:#FFFFFF;" transform="matrix(0.1106 -0.9939 0.9939 0.1106 10.453 144.4706)"/>
|
||||
+ <path d="M92.63,66.36c-0.23,3.3-3.14,5.82-6.49,5.62c-3.36-0.19-5.9-3.04-5.67-6.34 c0.22-3.31,3.12-5.82,6.48-5.62C90.31,60.21,92.86,63.06,92.63,66.36" style="fill:#2F2F2F;"/>
|
||||
+ </g>
|
||||
+ <g>
|
||||
+ <ellipse cx="42.46" cy="66.4" rx="15.5" ry="16.61" style="fill:#FFFFFF;" transform="matrix(0.9972 -0.0752 0.0752 0.9972 -4.8714 3.3796)"/>
|
||||
+ <path d="M49.02,65.13c0.38,3.29-2.01,6.3-5.34,6.72c-3.34,0.43-6.36-1.9-6.74-5.18 c-0.4-3.29,1.99-6.3,5.33-6.73C45.6,59.52,48.63,61.85,49.02,65.13" style="fill:#2F2F2F;"/>
|
||||
+ </g>
|
||||
+ </g>
|
||||
+ <path d="M87.35,89.46c-2.22-1.5-5.02-0.51-7.49,0c-6.9,1.42-12.95,1.48-15.86,1.48 c-2.91,0-8.96-0.06-15.86-1.48c-2.47-0.51-5.27-1.5-7.49,0c-2.82,1.9-0.74,8.74,3.7,13.36c2.68,2.79,9.07,8.21,19.66,8.21 c10.58,0,16.97-5.42,19.66-8.21C88.09,98.2,90.17,91.37,87.35,89.46z" style="fill:#ED6D31;"/>
|
||||
+ </g>
|
||||
+ </g>
|
||||
+</svg>
|
||||
\ No newline at end of file
|
|
@ -0,0 +1,19 @@
|
|||
commit 86bf81c0b8a51bffa4b4b566e1caaac6f0e041d3
|
||||
Author: Sebastien Bourdeauducq <sb@m-labs.hk>
|
||||
Date: Thu Mar 14 17:45:32 2019 +0800
|
||||
|
||||
add option to disable retries on transient failures
|
||||
|
||||
diff --git a/src/hydra-queue-runner/build-remote.cc b/src/hydra-queue-runner/build-remote.cc
|
||||
index 69c430eb..bdbc808d 100644
|
||||
--- a/src/hydra-queue-runner/build-remote.cc
|
||||
+++ b/src/hydra-queue-runner/build-remote.cc
|
||||
@@ -344,7 +344,7 @@ void State::buildRemote(ref<Store> destStore,
|
||||
break;
|
||||
case BuildResult::TransientFailure:
|
||||
result.stepStatus = bsFailed;
|
||||
- result.canRetry = true;
|
||||
+ result.canRetry = get(step->drv.env, "__hydraRetry", "1") == "1";
|
||||
result.errorMsg = "";
|
||||
break;
|
||||
case BuildResult::TimedOut:
|
|
@ -1,155 +0,0 @@
|
|||
{ stdenv, nix, perlPackages, buildEnv, releaseTools, fetchFromGitHub
|
||||
, makeWrapper, autoconf, automake, libtool, unzip, pkgconfig, sqlite, libpqxx
|
||||
, gitAndTools, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt
|
||||
, guile, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json
|
||||
, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar
|
||||
, rpm, dpkg, cdrkit, pixz, lib, fetchpatch, boost, autoreconfHook
|
||||
}:
|
||||
|
||||
with stdenv;
|
||||
|
||||
if lib.versions.major nix.version == "1"
|
||||
then throw "This Hydra version doesn't support Nix 1.x"
|
||||
else
|
||||
|
||||
let
|
||||
isGreaterNix20 = with lib.versions;
|
||||
let
|
||||
inherit (nix) version;
|
||||
inherit (lib) toInt;
|
||||
in major version == "2" && toInt (minor version) >= 1 || toInt (major version) > 2;
|
||||
|
||||
perlDeps = buildEnv {
|
||||
name = "hydra-perl-deps";
|
||||
paths = with perlPackages;
|
||||
[ ModulePluggable
|
||||
CatalystActionREST
|
||||
CatalystAuthenticationStoreDBIxClass
|
||||
CatalystDevel
|
||||
CatalystDispatchTypeRegex
|
||||
CatalystPluginAccessLog
|
||||
CatalystPluginAuthorizationRoles
|
||||
CatalystPluginCaptcha
|
||||
CatalystPluginSessionStateCookie
|
||||
CatalystPluginSessionStoreFastMmap
|
||||
CatalystPluginStackTrace
|
||||
CatalystRuntime
|
||||
CatalystTraitForRequestProxyBase
|
||||
CatalystViewDownload
|
||||
CatalystViewJSON
|
||||
CatalystViewTT
|
||||
CatalystXScriptServerStarman
|
||||
CatalystXRoleApplicator
|
||||
CryptRandPasswd
|
||||
DBDPg
|
||||
DBDSQLite
|
||||
DataDump
|
||||
DateTime
|
||||
DigestSHA1
|
||||
EmailMIME
|
||||
EmailSender
|
||||
FileSlurp
|
||||
IOCompress
|
||||
IPCRun
|
||||
JSON
|
||||
JSONAny
|
||||
JSONXS
|
||||
LWP
|
||||
LWPProtocolHttps
|
||||
NetAmazonS3
|
||||
NetStatsd
|
||||
PadWalker
|
||||
Readonly
|
||||
SQLSplitStatement
|
||||
SetScalar
|
||||
Starman
|
||||
SysHostnameLong
|
||||
TextDiff
|
||||
TextTable
|
||||
XMLSimple
|
||||
nix
|
||||
nix.perl-bindings
|
||||
git
|
||||
boehmgc
|
||||
];
|
||||
};
|
||||
in releaseTools.nixBuild rec {
|
||||
name = "hydra-${version}";
|
||||
version = "2019-04-01mlabs";
|
||||
|
||||
inherit stdenv;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "m-labs";
|
||||
repo = "hydra";
|
||||
rev = "dbe142aba7606ea6e4b9edddbecd21e42cec95cd";
|
||||
sha256 = "1jc0rfp580zkxmjhd73xz47sv18d967j7fy5fkr57dr8r4x49r7g";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx
|
||||
gitAndTools.topGit mercurial darcs subversion bazaar openssl bzip2 libxslt
|
||||
guile # optional, for Guile + Guix support
|
||||
perlDeps perl nix
|
||||
postgresql # for running the tests
|
||||
nlohmann_json
|
||||
] ++ lib.optionals isGreaterNix20 [ boost ];
|
||||
|
||||
hydraPath = lib.makeBinPath (
|
||||
[ sqlite subversion openssh nix coreutils findutils pixz
|
||||
gzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar
|
||||
] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
|
||||
# adds a patch which ensures compatibility with the API of Nix 2.0.
|
||||
# it has been reverted in https://github.com/NixOS/hydra/commit/162d671c48a418bd10a8a171ca36787ef3695a44,
|
||||
# for Nix 2.1/unstable compatibility. Reapplying helps if Nix 2.0 is used to keep the build functional.
|
||||
patches = lib.optionals (!isGreaterNix20) [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/NixOS/hydra/commit/08de434bdd0b0a22abc2081be6064a6c846d3920.patch";
|
||||
sha256 = "0kz77njp5ynn9l81g3q8zrryvnsr06nk3iw0a60187wxqzf5fmf8";
|
||||
})
|
||||
];
|
||||
|
||||
configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [ "-pthread" ];
|
||||
|
||||
shellHook = ''
|
||||
PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$(pwd)/src/hydra-evaluator:$PATH
|
||||
PERL5LIB=$(pwd)/src/lib:$PERL5LIB;
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preCheck = ''
|
||||
patchShebangs .
|
||||
export LOGNAME=''${LOGNAME:-foo}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/nix-support
|
||||
for i in $out/bin/*; do
|
||||
read -n 4 chars < $i
|
||||
if [[ $chars =~ ELF ]]; then continue; fi
|
||||
wrapProgram $i \
|
||||
--prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \
|
||||
--prefix PATH ':' $out/bin:$hydraPath \
|
||||
--set HYDRA_RELEASE ${version} \
|
||||
--set HYDRA_HOME $out/libexec/hydra \
|
||||
--set NIX_RELEASE ${nix.name or "unknown"}
|
||||
done
|
||||
''; # */
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
passthru.perlDeps = perlDeps;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Nix-based continuous build system";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue