Commit Graph

224 Commits

Author SHA1 Message Date
26b3da5d13 Fix tests
http://hydra.nixos.org/build/4902041
2013-05-09 14:29:04 +02:00
591aee0793 getPrimaryBuildsForView: Return all view results
Returning only the first 20 results can cause NixOS/Nixpkgs channel
generation to fail, if the first 20 view results correspond to
evaluations that haven't finished yet.  Then URLs like
/view/nixos/tested/latest-finished will return 500 rather than the
latest finished view.
2013-04-26 13:21:41 +02:00
e7926e046b Security: Improve checking of build products
Build product paths cannot reference locations outside of the Nix
store.  We previously disallowed paths from being symlinks, but this
didn't take into account that parent path elements can be symlinks as
well.  So a build product /nix/store/bla.../foo/passwd, with
/nix/store/bla.../foo being a symlink to /etc, would still work.

So now we check all paths encountered during path resolution.
Symlinks are allowed again so long as they point to the Nix store.
2013-04-02 23:32:04 +02:00
03189bf62b Implemented quoted strings support in hydra-build-products to allow file names with spaces + testcase 2013-03-20 18:05:21 +01:00
c96e427ec0 Log segfaults from the evaluator 2013-03-14 17:39:24 +01:00
f9426f365b machine-status: Read /etc/nix.machines instead of using the BuildMachines table 2013-03-04 15:37:20 -05:00
a77161e40a Allow users to edit their own settings
Also, don't use the flash anymore for going back to the referer.
2013-03-04 15:25:23 +01:00
e8cbcb50ac Add user registration 2013-02-27 18:33:47 +01:00
d1c2771ab8 Ensure that each eval is compared to the previous one from the same jobset
Also, reduce the number of database hits.
2013-02-26 19:08:39 +01:00
d596b58991 "Evaluate" command: push the jobset to the front of the eval queue
Don't let hydra-server call hydra-evaluate.  That will probably just
timeout, get killed, etc.
2013-02-26 16:56:19 +01:00
4b70be6753 Fix same system inputs 2013-02-26 15:51:56 +01:00
42d2015357 Support push notification of repository changes
External machines can now notify Hydra that it should check a
repository by sending a GET or PUSH request to /api/push, providing a
list of jobsets to be checked and/or a list of repository URLs.  In
the latter case, all jobsets that have any of the specified
repositories as an input will be checked.

For instance, you can configure GitHub or BitBucket to send a request
to the URL

  http://hydra.example.org/api/push?repos=git://github.com/NixOS/nixpkgs.git

to trigger evaluation of all jobsets that have
git://github.com/NixOS/nixpkgs.git as an input, or to the URL

  http://hydra.example.org/api/push?jobsets=patchelf:trunk,nixpkgs:trunk

to trigger evaluation of just the specified jobsets.
2013-02-25 21:10:32 +01:00
6658419f69 Disallow build products that are symlinks
Otherwise you can do

  ln -s /etc/passwd $out/foo
  echo "file misc $out/foo" >> $out/nix-support/hydra-build-products

and get Hydra to serve its /etc/passwd file.
2013-02-23 16:28:44 +01:00
aa7ddeb8e9 Use hashFile instead of nix-hash
Calling a shell command is a security hole if $path contains special
characters (e.g. "${foo}").  Observed in
http://hydra.nixos.org/build/4041321.
2013-02-23 16:09:34 +01:00
ba68826860 Add a page to show the latest evaluations for the entire server 2013-02-21 17:27:17 +01:00
767cab6cd2 Correctly redirect to the referring page when logging in 2013-02-21 14:38:18 +01:00
fec45d1f07 Remove dead code 2013-02-21 13:45:11 +01:00
cd83b8e3aa Security: Ensure that a build product refers to the Nix store 2013-02-13 18:26:00 +01:00
10882a1ffd Add multiple output support
This requires turning the outPath columns in the Builds and BuildSteps
tables into separate tables, and so requires a schema upgrade.
2013-02-13 16:49:28 +00:00
58dd49e645 Fix handling of IPC::Run::run exit status
Turns out that the exit status is returned in $?, not as the return
value of run().  So our error checking was completely bogus.
2013-01-23 15:56:28 +01:00
e0de5de91d Fix some warnings 2013-01-23 12:41:57 +00:00
30e5185acf Remove the logfile and logSize columns from the database
It's pointless to store these, since Nix knows where the logs are.
Also handle (in fact require) Nix's new log storage scheme.  Also some
cleanups in the build page.
2013-01-22 22:48:02 +01:00
67aefde62c Remove trailing whitespace 2013-01-22 14:41:02 +01:00
aa28ffe3a8 Die tabs die 2013-01-22 14:09:37 +01:00
f188fe5683 hydra-evaluator: Don't require $HYDRA_CONFIG 2013-01-22 13:19:28 +01:00
d4e49773c5 Allow dashes in attrNames 2013-01-11 12:16:21 +01:00
f27ae1d566 Add support for Guile & Guix. 2012-10-17 16:23:00 +02:00
4ade8c5a1b Add dollar to pathCompRE, which allows files with dollars in them to be served by Hydra, e.g. sphinx generated docs often has these types of files. 2012-10-12 13:48:11 +02:00
f4a24b94ee Fallback for git fetch, which allows specific gits revisions to be used as build inputs. 2012-09-11 22:31:49 +02:00
d37c2c239c export logContents 2012-06-26 12:09:05 +02:00
a2f56ce574 * Read logs using logContents function in stead of handling it everywhere separately. 2012-06-26 12:00:18 +02:00
0701cd0da8 * Fix getBuildLog for bzip2'd files. 2012-06-26 08:04:35 +02:00
0fdcd3176b Add numbered revision id of mercurial as revCount. 2012-05-01 09:15:52 +02:00
437e59c4a8 When checking if build is already built, check for potential 'failed with result'. Fixes issue #7. 2012-04-30 19:47:21 +02:00
4a6f798ef4 Fix Mercurial input fetching if a cached input has been GC'ed
Fixes Hydra/76.
2012-04-30 16:21:28 +02:00
6d5567bb16 Use git fetch -fu origin +$branch:$branch to fetch all changes for branch. 2012-04-26 08:36:40 +02:00
be3748e1ec In case of deep clone, make sure there is local branch. 2012-04-25 13:49:28 +02:00
7da48b5220 remove origin from git pull call, to get rid of fatal: fetch --all does not take a repository argument error 2012-04-25 10:17:22 +02:00
b49e138e9c Merge pull request #3 from nbp/candidates/fetch-git
Optimize fetch-git.
2012-04-24 10:18:28 -07:00
b0596c214a Merge branch 'master' of github.com:NixOS/hydra 2012-04-18 11:24:12 +02:00
cc38d0352f Strip all whitespace from revision from subversion call. Patch provided by Petr Ročkai 2012-04-18 11:22:26 +02:00
896a47d950 Clear nrSucceeded when restarting a build 2012-04-17 09:34:35 +00:00
d350b935f2 Add validation for project and jobset names 2012-04-17 08:53:00 +00:00
19d9955e89 Optimize fetch-git. 2012-04-14 18:17:35 -07:00
6e62d9b7b5 Allow use of a single Git clone for several branches.
This reinstates commit 53329ecc61, but
uses "git pull --all", instead of "git fetch --all", so that local
tracking branches get updated too.
2012-04-12 16:55:33 +02:00
ed23a6e6d3 Add branch to local clone path of git repositories for now. 2012-04-10 10:06:12 +02:00
79211d5efe Revert "Use git fetch --all to update local clone in stead of git pull. Also, do not use --branch in initial clone."
This reverts commit 53329ecc61.
2012-04-10 10:04:22 +02:00
53329ecc61 Use git fetch --all to update local clone in stead of git pull. Also, do not use --branch in initial clone. 2012-04-05 15:49:48 +02:00
8b88ce19c2 Huuuge speedup in the Hydra evaluator
The check to see whether a build had been scheduled in a previous
evaluation took about 200 ms for the nixpkgs:trunk jobset.  Given
that it has more than 15000 builds, this added up to a lot.  Now
it takes 0.2 ms per build.
2012-04-04 17:29:03 +02:00
f52ca0c588 Add a redirect to the latest view result for which the underlying evaluation has finished completely
This will be useful for the Nixpkgs channel mirror script:

  http://hydra.nixos.org/view/nixpkgs/unstable/latest-finished/channel

is the channel containing the latest, consistent, tested set of builds.
2012-04-03 17:45:03 +02:00