Reorganize hydra modules
This commit is contained in:
parent
73b6c1fb11
commit
c5f37eca91
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -38,6 +38,7 @@ t/jobs/declarative/project.json
|
||||||
hydra-config.h
|
hydra-config.h
|
||||||
hydra-config.h.in
|
hydra-config.h.in
|
||||||
result
|
result
|
||||||
|
result-*
|
||||||
outputs
|
outputs
|
||||||
config
|
config
|
||||||
stamp-h1
|
stamp-h1
|
||||||
|
|
|
@ -5,8 +5,8 @@ endif
|
||||||
|
|
||||||
BOOTCLEAN_SUBDIRS = $(SUBDIRS)
|
BOOTCLEAN_SUBDIRS = $(SUBDIRS)
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
EXTRA_DIST = hydra-module.nix
|
EXTRA_DIST = nixos-modules/hydra.nix
|
||||||
|
|
||||||
install-data-local: hydra-module.nix
|
install-data-local: nixos-modules/hydra.nix
|
||||||
$(INSTALL) -d $(DESTDIR)$(datadir)/nix
|
$(INSTALL) -d $(DESTDIR)$(datadir)/nix
|
||||||
$(INSTALL_DATA) hydra-module.nix $(DESTDIR)$(datadir)/nix/
|
$(INSTALL_DATA) nixos-modules/hydra.nix $(DESTDIR)$(datadir)/nix/hydra-module.nix
|
||||||
|
|
50
flake.nix
50
flake.nix
|
@ -15,9 +15,11 @@
|
||||||
systems = [ "x86_64-linux" "aarch64-linux" ];
|
systems = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
forEachSystem = nixpkgs.lib.genAttrs systems;
|
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||||
|
|
||||||
|
overlayList = [ self.overlays.default nix.overlays.default ];
|
||||||
|
|
||||||
pkgsBySystem = forEachSystem (system: import nixpkgs {
|
pkgsBySystem = forEachSystem (system: import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
overlays = [ self.overlays.default nix.overlays.default ];
|
overlays = overlayList;
|
||||||
});
|
});
|
||||||
|
|
||||||
# NixOS configuration used for VM tests.
|
# NixOS configuration used for VM tests.
|
||||||
|
@ -386,50 +388,8 @@
|
||||||
default = pkgsBySystem.${system}.hydra;
|
default = pkgsBySystem.${system}.hydra;
|
||||||
});
|
});
|
||||||
|
|
||||||
nixosModules.hydra = {
|
nixosModules = import ./nixos-modules {
|
||||||
imports = [ ./hydra-module.nix ];
|
overlays = overlayList;
|
||||||
nixpkgs.overlays = [ self.overlays.default nix.overlays.default ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosModules.hydraTest = { pkgs, ... }: {
|
|
||||||
imports = [ self.nixosModules.hydra ];
|
|
||||||
|
|
||||||
services.hydra-dev.enable = true;
|
|
||||||
services.hydra-dev.hydraURL = "http://hydra.example.org";
|
|
||||||
services.hydra-dev.notificationSender = "admin@hydra.example.org";
|
|
||||||
|
|
||||||
systemd.services.hydra-send-stats.enable = false;
|
|
||||||
|
|
||||||
services.postgresql.enable = true;
|
|
||||||
services.postgresql.package = pkgs.postgresql_11;
|
|
||||||
|
|
||||||
# The following is to work around the following error from hydra-server:
|
|
||||||
# [error] Caught exception in engine "Cannot determine local time zone"
|
|
||||||
time.timeZone = "UTC";
|
|
||||||
|
|
||||||
nix.extraOptions = ''
|
|
||||||
allowed-uris = https://github.com/
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosModules.hydraProxy = {
|
|
||||||
services.httpd = {
|
|
||||||
enable = true;
|
|
||||||
adminAddr = "hydra-admin@example.org";
|
|
||||||
extraConfig = ''
|
|
||||||
<Proxy *>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</Proxy>
|
|
||||||
|
|
||||||
ProxyRequests Off
|
|
||||||
ProxyPreserveHost On
|
|
||||||
ProxyPass /apache-errors !
|
|
||||||
ErrorDocument 503 /apache-errors/503.html
|
|
||||||
ProxyPass / http://127.0.0.1:3000/ retry=5 disablereuse=on
|
|
||||||
ProxyPassReverse / http://127.0.0.1:3000/
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.container = nixpkgs.lib.nixosSystem {
|
||||||
|
|
49
nixos-modules/default.nix
Normal file
49
nixos-modules/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{ overlays }:
|
||||||
|
|
||||||
|
rec {
|
||||||
|
hydra = {
|
||||||
|
imports = [ ./hydra.nix ];
|
||||||
|
nixpkgs = { inherit overlays; };
|
||||||
|
};
|
||||||
|
|
||||||
|
hydraTest = { pkgs, ... }: {
|
||||||
|
imports = [ hydra ];
|
||||||
|
|
||||||
|
services.hydra-dev.enable = true;
|
||||||
|
services.hydra-dev.hydraURL = "http://hydra.example.org";
|
||||||
|
services.hydra-dev.notificationSender = "admin@hydra.example.org";
|
||||||
|
|
||||||
|
systemd.services.hydra-send-stats.enable = false;
|
||||||
|
|
||||||
|
services.postgresql.enable = true;
|
||||||
|
services.postgresql.package = pkgs.postgresql_11;
|
||||||
|
|
||||||
|
# The following is to work around the following error from hydra-server:
|
||||||
|
# [error] Caught exception in engine "Cannot determine local time zone"
|
||||||
|
time.timeZone = "UTC";
|
||||||
|
|
||||||
|
nix.extraOptions = ''
|
||||||
|
allowed-uris = https://github.com/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
hydraProxy = {
|
||||||
|
services.httpd = {
|
||||||
|
enable = true;
|
||||||
|
adminAddr = "hydra-admin@example.org";
|
||||||
|
extraConfig = ''
|
||||||
|
<Proxy *>
|
||||||
|
Order deny,allow
|
||||||
|
Allow from all
|
||||||
|
</Proxy>
|
||||||
|
|
||||||
|
ProxyRequests Off
|
||||||
|
ProxyPreserveHost On
|
||||||
|
ProxyPass /apache-errors !
|
||||||
|
ErrorDocument 503 /apache-errors/503.html
|
||||||
|
ProxyPass / http://127.0.0.1:3000/ retry=5 disablereuse=on
|
||||||
|
ProxyPassReverse / http://127.0.0.1:3000/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -143,7 +143,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
./Makefile.am
|
./Makefile.am
|
||||||
./src
|
./src
|
||||||
./doc
|
./doc
|
||||||
./hydra-module.nix
|
./nixos-modules/hydra.nix
|
||||||
# These are always needed to appease Automake
|
# These are always needed to appease Automake
|
||||||
./t/Makefile.am
|
./t/Makefile.am
|
||||||
./t/jobs/config.nix.in
|
./t/jobs/config.nix.in
|
||||||
|
|
Loading…
Reference in a new issue