summary refs log tree commit diff
path: root/nixos/modules/services/continuous-integration/hydra/default.nix
Commit message (Collapse)AuthorAge
* nixos/nix-daemon: use structural settingspolykernel2022-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `nix.*` options, apart from options for setting up the daemon itself, currently provide a lot of setting mappings for the Nix daemon configuration. The scope of the mapping yields convience, but the line where an option is considered essential is blurry. For instance, the `extra-sandbox-paths` mapping is provided without its primary consumer, and the corresponding `sandbox-paths` option is also not mapped. The current system increases the maintenance burden as maintainers have to closely follow upstream changes. In this case, there are two state versions of Nix which have to be maintained collectively, with different options avaliable. This commit aims to following the standard outlined in RFC 42[1] to implement a structural setting pattern. The Nix configuration is encoded at its core as key-value pairs which maps nicely to attribute sets, making it feasible to express in the Nix language itself. Some existing options are kept such as `buildMachines` and `registry` which present a simplified interface to managing the respective settings. The interface is exposed as `nix.settings`. Legacy configurations are mapped to their corresponding options under `nix.settings` for backwards compatibility. Various options settings in other nixos modules and relevant tests have been updated to use structural setting for consistency. The generation and validation of the configration file has been modified to use `writeTextFile` instead of `runCommand` for clarity. Note that validation is now mandatory as strict checking of options has been pushed down to the derivation level due to freeformType consuming unmatched options. Furthermore, validation can not occur when cross-compiling due to current limitations. A new option `publicHostKey` was added to the `buildMachines` submodule corresponding to the base64 encoded public host key settings exposed in the builder syntax. The build machine generation was subsequently rewritten to use `concatStringsSep` for better performance by grouping concatenations. [1] - https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
* nixos/*: add trivial defaultText for options with simple defaultspennae2021-12-02
|
* nixos/doc: clean up defaults and examplesNaïm Favier2021-10-04
|
* nixos/hydra: gc-check-reachability no longer exists in nix 2.4 (#117925)Jörg Thalheim2021-03-29
| | | | | | | | | | | * nixos/hydra: gc-check-reachability no longer exists in nix 2.4 fixup! nixos/hydra: gc-check-reachability no longer exists in nix 2.4 * Update nixos/modules/services/continuous-integration/hydra/default.nix Co-authored-by: Sandro <sandro.jaeckel@gmail.com> Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* nixos/hydra: append `application_name` to HYDRA_DBICole Helbling2021-03-03
| | | | | | This will make it easier to track specifically where queries are being made from (assuming a `log_line_prefix` that includes `%a` in the postgres configuration).
* Don't `createHome` for the `hydra` user (#110722)Gabriel Gonzalez2021-01-29
| | | Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
* nixos/hydra: remove hydra-migration upgrade pathMaximilian Bosch2020-10-21
| | | | | | | | | 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.
* hydra: wrap executables with hydra env varsFrederik Rietdijk2020-04-11
| | | | | | We already set the relevant env vars in the systemd services. That does not help one when executing any of the executables outside a service, e.g. when creating a new user.
* hydra: 2020-03-24 -> 2020-04-07Maximilian Bosch2020-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
* hydra: 2020-02-06 -> 2020-03-{24,27}Maximilian Bosch2020-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Merge pull request #77669 from ↵Bas van Dijk2020-01-15
|\ | | | | | | | | basvandijk/hydra-sync-buildMachinesFiles-with-upstream hydra: only set buildMachinesFiles when nix.buildMachines is defined
| * hydra: only set buildMachinesFiles when nix.buildMachines is definedBas van Dijk2020-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | This applies [hydra PR #432](https://github.com/NixOS/hydra/pull/432) to the NixOS module in nixpkgs: ``` commit 4efd078977e5ea20e1104783efc324cba11690bc Author: Bas van Dijk <v.dijk.bas@gmail.com> Date: Sun Dec 11 15:35:38 2016 +0100 Only set buildMachinesFiles when nix.buildMachines is defined ```
* | hydra: remove the build-use-substitutes optionBas van Dijk2020-01-14
|/ | | | | | | | | | | | | | | | | | | The following commit from 2016 in hydra removed the `--option build-use-substitutes` from the hydra-queue-runner service: ``` commit ee2e9f5335c8c0288c102975b506f6b275793cfe Author: Eelco Dolstra <edolstra@gmail.com> Date: Fri Oct 7 20:23:05 2016 +0200 Update to reflect BinaryCacheStore changes BinaryCacheStore no longer implements buildPaths() and ensurePath(), so we need to use copyPath() / copyClosure(). ``` It would be better if the hydra module in NixOS matches the upstream module.
* nixos/nix-daemon: don't refer to deprecated option aliasesedef2019-10-18
| | | | | | The `gc-` prefixed versions of these options have been deprecated since Nix 2.0.
* nixos/hydra: incorporate upstream changes and update testMaximilian Bosch2019-09-14
| | | | | | | | | | | | | During the last update, `hydra-notify` was rewritten as a daemon which listens to postgresql notifications for each build[1]. The module uses the `hydra-notify.service` unit from upstream's Hydra module and the VM test ensures that email notifications are sent properly. Also updated `hydra-init.service` to install `pg_trgm` on a local database if needed[2]. [1] https://github.com/NixOS/hydra/commit/c7861b85c4c3cc974b27147bbf3cc258b9fe9cc3 [2] https://github.com/NixOS/hydra/commit/8a0a5ec3a3200d4f4d4d38f87d0afdb49f092b39
* treewide: remove redundant recvolth2019-08-28
|
* nixos/modules: users.(extraUsers|extraGroup->users|group)Florian Klink2018-06-30
|
* hydra: 2017-10-26 -> 2017-11-21Domen Kožar2017-11-22
|
* nixos/hydra postgresql: Fix #27314 and add test casePhilipp Steinpass2017-09-02
|
* hydra: restart daemons on config changeDomen Kožar2017-06-27
| | | | https://github.com/NixOS/hydra/pull/491
* hydra-evaluator: depend on jqDomen Kožar2017-06-21
|
* nixos: hydra: sync with upstream hydra moduleDomen Kožar2017-04-28
|
* treewide: use boolToString functionFranz Pletz2017-04-11
|
* hydra-module: add cfg.package to hydra-evaluator pathAycan iRiCAN2016-11-28
|
* hydra-module: add default to buildMachinesFilesEric Sagnes2016-08-03
|
* hydra-module: honor user and group idsEric Sagnes2016-08-03
|
* Add hydra package and its NixOS module.Domen Kožar2016-06-01
This was originally removed in d4d0e449d7b96704eeaa2570255fb41c85c49613. The intent was not to maintain hydra expression at two places. Nowadays we have enough devs to maintain this despite copy/pasta. This should encourage more people to use Hydra, which is a really great piece of software together with Nix. Tested a deploy using https://github.com/peti/hydra-tutorial