Commit Graph

65 Commits

Author SHA1 Message Date
Maximilian Bosch
1308817e05
nixos/hydra: remove hydra-migration upgrade path
This should NOT be backported to 20.09!

When 21.03 is released, the DB changes are about a year old and
operators had two release cycles for the upgrade. At this point it
should be fair to remove the compat layer to reduce the complexity of
the module itself.
2020-10-21 18:03:04 +02:00
Maximilian Bosch
1bb8808e1a
hydra-unstable: 2020-09-02 -> 2020-10-20 2020-10-21 18:03:04 +02:00
Maximilian Bosch
1c55613cd7
hydra-unstable: 2020-08-04 -> 2020-09-02
Needed to fix Hydra with latest `nixUnstable`.
2020-09-03 22:34:13 +02:00
Maximilian Bosch
ae9ab324b7
hydra-unstable: 2020-07-28 -> 2020-08-04
Moving just one patch forward to fix importing store-paths from
`hydra-queue-runner`[1]. The other patches[2] require a newer
`pkgs.nixUnstable` and can't be used currently due to this.

[1] https://github.com/NixOS/nixpkgs/pull/93945#issuecomment-668244478
[2] 77c33c1d71...4b5813051b
2020-08-04 15:29:09 +02:00
Ivan Kozik
0d7bdd6d8e hydra-unstable: 2020-06-23 -> 2020-07-28
This fixes the build:

config.status: creating hydra-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing executable-scripts commands
building
build flags: -j8 -l8 SHELL=/nix/store/c4wxsn4jays9j31y5z9f83nr2cp7l4pa-bash-4.4-p23/bin/bash
make  all-recursive
make[1]: Entering directory '/build/source'
Making all in src
make[2]: Entering directory '/build/source/src'
Making all in hydra-evaluator
make[3]: Entering directory '/build/source/src/hydra-evaluator'
g++ -DHAVE_CONFIG_H -I. -I../..    -std=c++17 -I/nix/store/2xhb4hlskn33pbyph36v4wxcan56dnrw-boehm-gc-8.0.4-dev/include -I/nix/store/5rjgsqjdm71cflfb68q7m771a1rqcsk3-nix-2.4pre20200719_a79b6dd-dev/include/nix -Wall -I ../libhydra -Wno-deprecated-declarations -g -O2 -std=c++17 -include nix/config.h -c -o hydra_evaluator-hydra-evaluator.o `test -f 'hydra-evaluator.cc' || echo './'`hydra-evaluator.cc
hydra-evaluator.cc:27:27: error: template argument 1 is invalid
   27 |     std::unique_ptr<Config> config;
      |                           ^
hydra-evaluator.cc:27:27: error: template argument 2 is invalid
hydra-evaluator.cc: In constructor 'Evaluator::Evaluator()':
hydra-evaluator.cc:61:56: error: base operand of '->' is not a pointer
   61 |         , maxEvals(std::max((size_t) 1, (size_t) config->getIntOption("max_concurrent_evals", 4)))
      |                                                        ^~
hydra-evaluator.cc:60:44: error: invalid user-defined conversion from 'std::_MakeUniq<Config>::__single_object' {aka 'std::unique_ptr<Config, std::default_delete<Config> >'} to 'int' [-fpermissive]
   60 |         : config(std::make_unique<::Config>())
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /nix/store/3krz9s8ni3bqy4hy35ycmq8assrrb4f6-gcc-9.3.0/include/c++/9.3.0/memory:80,
                 from /nix/store/d97d0wixvlprz59z57maqj1pmda55r3b-libpqxx-6.4.5/include/pqxx/binarystring.hxx:17,
                 from /nix/store/d97d0wixvlprz59z57maqj1pmda55r3b-libpqxx-6.4.5/include/pqxx/binarystring:4,
                 from /nix/store/d97d0wixvlprz59z57maqj1pmda55r3b-libpqxx-6.4.5/include/pqxx/pqxx:3,
                 from ../libhydra/db.hh:3,
                 from hydra-evaluator.cc:1:
/nix/store/3krz9s8ni3bqy4hy35ycmq8assrrb4f6-gcc-9.3.0/include/c++/9.3.0/bits/unique_ptr.h:374:16: note: candidate is: 'std::unique_ptr<_Tp, _Dp>::operator bool() const [with _Tp = Config; _Dp = std::default_delete<Config>]' <near match>
  374 |       explicit operator bool() const noexcept
      |                ^~~~~~~~
/nix/store/3krz9s8ni3bqy4hy35ycmq8assrrb4f6-gcc-9.3.0/include/c++/9.3.0/bits/unique_ptr.h:374:16: note:   return type 'bool' of explicit conversion function cannot be converted to 'int' with a qualification conversion
make[3]: *** [Makefile:440: hydra_evaluator-hydra-evaluator.o] Error 1
make[3]: Leaving directory '/build/source/src/hydra-evaluator'
make[2]: *** [Makefile:360: all-recursive] Error 1
make[2]: Leaving directory '/build/source/src'
make[1]: *** [Makefile:414: all-recursive] Error 1
make[1]: Leaving directory '/build/source'
make: *** [Makefile:344: all] Error 2
builder for '/nix/store/g967cc3j6rc3nnpx2s4klpr03ig9zzyp-hydra-2020-06-23.drv' failed with exit code 2
2020-07-28 23:40:41 +00:00
Maximilian Bosch
39e3c15706
hydra-unstable: 2020-06-01 -> 2020-06-23
Fixes the build the changes from b505bf202b.
2020-06-23 15:57:22 +02:00
Maximilian Bosch
c18016cfbf
hydra-unstable: 2020-04-16 -> 2020-06-01 2020-06-02 15:39:42 +02:00
rnhmjoj
aee614c996
treewide: replace bazaar with breezy 2020-05-25 09:22:54 +02:00
Maximilian Bosch
ef80b6324b
hydra*: add passthru.tests to reference VM-tests 2020-04-16 01:01:31 +02:00
Maximilian Bosch
6f6c08af30
hydra-unstable: 2020-04-07 -> 2020-04-16 2020-04-16 01:01:08 +02:00
Maximilian Bosch
0f5c38feed
hydra: 2020-03-24 -> 2020-04-07
Also removed `pkgs.hydra-flakes` since flake-support has been merged
into master[1]. Because of that, `pkgs.hydra-unstable` is now compiled
against `pkgs.nixFlakes` and currently requires a patch since Hydra's
master doesn't compile[2] atm.

[1] https://github.com/NixOS/hydra/pull/730
[2] https://github.com/NixOS/hydra/pull/732
2020-04-07 14:11:12 +02:00
Spencer Baugh
ed10432541 hydra: add dep on perlPackages.CatalystPluginSmartURI
This plugin allows configuring the URLs generated by Catalyst (and
therefore by Hydra) to be relative instead of absolute, which makes it
automatically behave correctly when Hydra is accessed both directly
and behind a reverse proxy.
2020-04-04 20:02:09 -04:00
Jan Tojnar
dc88e94ff1
hydra-unstable: Fix eval with allowAliases = false
* Catalyst::Plugin::Unicode::Encoding has been merged into Catalyst::Runtime
* Test::More is apparently part of Perl core modules since 5.6.2
2020-03-29 00:50:16 +01:00
Maximilian Bosch
bd5324c4fc
hydra: 2020-02-06 -> 2020-03-{24,27}
Upgrades Hydra to the latest master/flake branch. To perform this
upgrade, it's needed to do a non-trivial db-migration which provides a
massive performance-improvement[1].

The basic ideas behind multi-step upgrades of services between NixOS versions
have been gathered already[2]. For further context it's recommended to
read this first.

Basically, the following steps are needed:

* Upgrade to a non-breaking version of Hydra with the db-changes
  (columns are still nullable here). If `system.stateVersion` is set to
  something older than 20.03, the package will be selected
  automatically, otherwise `pkgs.hydra-migration` needs to be used.

* Run `hydra-backfill-ids` on the server.

* Deploy either `pkgs.hydra-unstable` (for Hydra master) or
  `pkgs.hydra-flakes` (for flakes-support) to activate the optimization.

The steps are also documented in the release-notes and in the module
using `warnings`.

`pkgs.hydra` has been removed as latest Hydra doesn't compile with
`pkgs.nixStable` and to ensure a graceful migration using the newly
introduced packages.

To verify the approach, a simple vm-test has been added which verifies
the migration steps.

[1] https://github.com/NixOS/hydra/pull/711
[2] https://github.com/NixOS/nixpkgs/pull/82353#issuecomment-598269471
2020-03-28 23:33:25 +01:00
bb010g
a7cb757af4 git-and-tools: canonicalize hyphenated names
Old intercaps names are aliased.

darcs-to-git: rename from darcsToGit
git-fast-export: rename from gitFastExport
git-remote-gcrypt: rename from gitRemoteGcrypt
hub-unstable: rename from hubUnstable
top-git: rename from topGit
2020-02-25 23:04:20 -08:00
Maximilian Bosch
4e81b720eb
hydra: 2019-11-13 -> 2020-02-06 2020-02-06 21:19:46 +01:00
Robin Gloster
f9f46dc327
treewide: NIX_*_FLAGS -> string 2019-12-31 00:15:46 +01:00
Maximilian Bosch
c1d5d406d6
hydra: 2019-08-30 -> 2019-11-13
Updates NixOS/hydra to the latest git-revision available. Also ensured
that the list of Perl dependencies needed for the server is up-to-date.

Most notably are the following changes:

* HTTP-endpoint at `/prometheus` to export metrics
* New user-roles for minor maintenance tasks
2019-12-21 21:57:50 +01:00
Shane
8acf3405ca hydra: Temporarily unbreak hydra with the deprecated lib.closePropagation
Hydra fails to start on recent recent nixpkgs due to a change in Perl packaging: this has been reported in #72783. @conferno in that thread suggested using lib.closePropagation as a fix, which is apparently deprecated, but works for now.
2019-12-16 10:29:19 +00:00
Maximilian Bosch
b898c262c1
hydra: 2019-05-06 -> 2019-08-30 2019-09-08 01:25:25 +02:00
Maximilian Bosch
703a211f05
hydra: 2019-03-18 -> 2019-05-06
As Hydra doesn't have a release model, we have to pin git revs for our
package. The current state provides some new fixes and features like a status
plugin for GitLab.

As Nix 2.0 isn't bundled in `master` and `release-19.03` and we don't
support Nix 1.11 for Hydra, I figured that the Nix version checks could
be dropped and boost can always be used as build input.
2019-05-11 18:56:02 +02:00
Danylo Hlynskyi
8e18f4e414
hydra: fix build (#58592)
Apply patch from https://github.com/NixOS/hydra/pull/648
2019-03-30 22:57:46 +02:00
Maximilian Bosch
341aeb8cf3
hydra: 2019-02-01 -> 2019-03-18
Yesterday we had a discussion about several Hydra-related problems in the #nixos
IRC channel[1], as a result a lot of stalled PRs were merged.

I think that we want to use the latest Hydra now as it contains lots of
new fixes and folks mentioned that they want to use a self-hosted
Hydra, so they probably use the `nixpkgs` package rather than the
expressions from `NixOS/hydra`.

Simply moving to 2019-03-18 should be fine for now as Hydra doesn't have
a release model.

[1] https://logs.nix.samueldr.com/nixos/2019-03-17#2048416;
2019-03-18 09:49:42 +01:00
Vladimír Čunát
64edccb463
treewide: fix missing libs after libtool pruning #51767 2019-02-10 14:14:33 +01:00
Maximilian Bosch
acfc1c1535
hydra: don't support Nix 1.x
The component `hydra-evaluator` requires `pool.hh` from Nix which isn't
provided by Nix 1.x and thus fails with the following error in this
case:

```
hydra-evaluator.cc:3:10: fatal error: pool.hh: No such file or directory
 #include "pool.hh"
          ^~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:443: hydra_evaluator-hydra-evaluator.o] Error 1
```

As the commit is from 2016 and fairly hard to revert for Nix 1.x
support, it's easier to drop that.

This has been tested with fixed perl-bindings for Nix1 as done in #55146.
2019-02-05 00:00:18 +01:00
Ben Wolsieffer
8fb7706847 hydra: 2018-08-07 -> 2019-02-01 2019-02-02 19:02:06 -05:00
Domen Kožar
849b27c62b
hydra: remove me as maintainer 2018-08-14 11:44:07 +01:00
lewo
f2cab31ae9
Merge pull request #44841 from Ma27/bump-hydra
hydra: 2017-11-21 -> 2018-08-07
2018-08-14 09:55:11 +02:00
Maximilian Bosch
7682c2fd61
hydra: 2017-11-21 -> 2018-08-07
This bumps Hydra to the latest revision available. As Hydra doesn't have
a release model (and therefore no tags) ATM, the derivation will pin
against the actual git revision and the date of the commit in the
derivation name.

Additionally the following changes have been made:

* Dropped `postUnpack` phase. It is useful when working with the Hydra
  source (and no dirty changes shall be used in `release.nix`, but is has
  no use in `nixpkgs`).

* Added myself as maintainer to have more folks available in case of
  future breakage.

* Implemented support for Nix 2.0 and `unstable` (currently 2.1):

  Since 1672bcd230447f1ce0c3291950bdd9a662cee974 in NixOS/nix the
  evaluator differentiates between `settings` and `evalSettings`.
  Previously `restrictEval` in `hydra-eval-jobs.cc` has been set in
  `settings`, this doesn't work anymore in Nix 2.1 and is therefore
  incompatible to Nix 2.0 on an API level.

  To resolve this, the flag `isGreaterNix20` parses the version string
  of `pkgs.nix` and applies a patch if nix.version<=2.0.

  Furthermore the Hydra build with Nix 2.1 requires `boost` as build input
  which is not needed for Nix 2.0. To avoid unnecessary increase in the
  closure size this library will only used as build input for
  nix.version>2.0.

* Fixed the NixOS test for `hydra`:
  disabled binary cache to allow sandbox builds (otherwise it would
  query `cache.nixos.org` during the Hydra build inside the test).

  Additionally the trivial.nix jobset required simplification (as done
  in NixOS/hydra, e.g. tests/api-test.nix) as bash is not available in
  the build sandbox as builder (even when adding pkgs.bash to
  systemPackages).

  The easiest workaround to confirm a the functionality of a jobset
  without importing nixpkgs is to use the default shell /bin/sh which
  is mounted from `pkgs.busybox` into the build env
  (https://github.com/NixOS/nixpkgs/pull/44841#discussion_r209751972) in the
  VM and a named pipe to create $out.

Closes #44044
2018-08-13 22:56:27 +02:00
volth
c501958535 hydra: fix build 2018-07-25 22:32:10 +00:00
volth
cc55a3ebcb treewide: fix build with disallowed aliases (#43872)
fixes build with disallowed aliases
2018-07-21 22:03:24 -04:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
Drew Hess
f7fe61207b
hydra: fix run-time dependencies after latest CPAN update. 2018-04-21 14:50:07 -07:00
Shea Levy
192221ae3f
hydra: build against nix stable.
Fixes #39001
2018-04-17 07:06:49 -04:00
Vladimír Čunát
1dbb82848a
hydra: fix build with gcc7, incl. libpqxx update
It builds, but it's otherwise untested.
2018-02-23 17:08:09 +01:00
Domen Kožar
ad492e6f33
hydra: 2017-10-26 -> 2017-11-21 2017-11-22 17:24:55 +00:00
Orivej Desh
286faa2834 hydra: 2017-09-14 -> 2017-10-26
Fixes the build with the current nixUnstable.
2017-11-12 16:45:19 +00:00
Joachim Fasting
3e96cee147
hydra: 2017-07-27 -> 2017-09-14
Builds against recent nixUnstable
2017-09-21 01:02:02 +02:00
Franz Pletz
1bed4773f5
postgresql92: remove last references 2017-09-05 18:20:56 +02:00
Domen Kožar
a082215df5
hydra: 2017-07-24 -> 2017-07-27 2017-08-08 10:50:50 +02:00
Bas van Dijk
662cf644bc hydra: 2017-06-22 -> 2017-07-24
hydra-2017-06-22 fails to build because of the nixUnstable upgrade.
hydra-2017-07-24 builds successfully.
2017-07-24 23:22:08 +02:00
Domen Kožar
05f94c8c13
hydra: 2017-06-21 -> 2017-06-22 2017-06-22 16:48:43 +02:00
Domen Kožar
be4a4ef701
hydra: 2017-04-26 -> 2017-06-21 2017-06-21 15:30:02 +02:00
Eelco Dolstra
7d3f1d9c56
hydra: preHook -> shellHook
Upstream 8abc595d1c.
2017-05-04 15:34:25 +02:00
Domen Kožar
767aad2aaa
hydra: 2017-03-21 -> 2017-04-26 2017-05-02 09:36:35 +02:00
Bjørn Forsman
9c830c8456 hydra: add dependency on Nix' perl bindings
This unbreaks the build since the latest nixUnstable update
(3dd66ec6e9).

It's basically the same fix as in hydra git repo:

  a0376a92e5
2017-04-11 19:34:25 +02:00
Domen Kožar
99632d5466
Nix, Hydra: bump to 2017-03-21 2017-03-25 13:00:49 +01:00
Bjørn Forsman
5b4a857126 hydra: 2016-12-09 -> 2017-02-03
Unbreaks the build since commit dea81956fc
("nixUnstable: 1.12pre4911_b30d1e7 -> 1.12pre4997_1351b0d").
2017-02-04 14:23:41 +01:00
Domen Kožar
8940c68c09
hydra: 2016-04-15 -> 2016-12-09
Fixes #19396 #21424
2017-01-08 14:40:12 +01:00
Nikolay Amiantov
3fca2ce204 fix invalid antiquotations
See https://github.com/NixOS/nix/issues/1017
2016-08-08 18:08:37 +03:00