switch to lix #516

Merged
DarkKirb merged 3 commits from switch-to-lix into main 2024-09-10 10:51:19 +00:00
12 changed files with 577 additions and 181 deletions

View file

@ -11,7 +11,6 @@
];
nixpkgs.config.allowUnfree = true;
nix = {
package = pkgs.nixVersions.latest;
settings = {
sandbox = true;
trusted-users = ["@wheel" "remote-build"];

View file

@ -53,12 +53,25 @@ in {
imports = [
./postgres.nix
../../modules/hydra.nix
hydra.nixosModules.hydra
];
services.hydra = {
services.hydra-dev = {
enable = true;
package = hydra.packages.${system}.hydra.overrideAttrs (_: {
package = pkgs.hydra.overrideAttrs (super: {
doCheck = false;
doInstallCheck = false;
patches =
super.patches
or []
++ [
./hydra/0001-add-gitea-pulls.patch
./hydra/0002-unrestrict-eval.patch
./hydra/0003-unlimit-output.patch
./hydra/0004-remove-pr-number-from-github-job-name.patch
./hydra/0005-use-pulls-instead-of-issues.patch
./hydra/0006-only-list-open-prs.patch
./hydra/0007-status-state.patch
];
});
hydraURL = "https://hydra.chir.rs/";
notificationSender = "hydra@chir.rs";

View file

@ -0,0 +1,77 @@
From 485657f5162cf063a8a6584255e9439b3f1686df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Wed, 4 Sep 2024 08:33:46 +0200
Subject: [PATCH 1/8] add gitea pulls
---
src/lib/Hydra/Plugin/GiteaPulls.pm | 58 ++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 src/lib/Hydra/Plugin/GiteaPulls.pm
diff --git a/src/lib/Hydra/Plugin/GiteaPulls.pm b/src/lib/Hydra/Plugin/GiteaPulls.pm
new file mode 100644
index 00000000..dda50f8d
--- /dev/null
+++ b/src/lib/Hydra/Plugin/GiteaPulls.pm
@@ -0,0 +1,58 @@
+package Hydra::Plugin::GiteaPulls;
+
+use strict;
+use warnings;
+use parent 'Hydra::Plugin';
+use HTTP::Request;
+use LWP::UserAgent;
+use JSON::MaybeXS;
+use Hydra::Helper::CatalystUtils;
+use File::Temp;
+use POSIX qw(strftime);
+
+sub supportedInputTypes {
+ my ($self, $inputTypes) = @_;
+ $inputTypes->{'giteapulls'} = 'Open Gitea Pull Requests';
+}
+
+sub _iterate {
+ my ($url, $page, $auth, $pulls, $ua) = @_;
+ my $req = HTTP::Request->new('GET', "$url&page=$page");
+ $req->header('Accept' => 'application/json');
+ $req->header('Authorization' => $auth) if defined $auth;
+ my $res = $ua->request($req);
+ my $content = $res->decoded_content;
+ die "Error pulling from the gitea pulls API: $content\n"
+ unless $res->is_success;
+ my $pulls_list = decode_json $content;
+ # TODO Stream out the json instead
+ foreach my $pull (@$pulls_list) {
+ $pulls->{$pull->{number}} = $pull;
+ }
+ _iterate($url, $page + 1, $auth, $pulls, $ua) unless !@$pulls_list;
+}
+
+sub fetchInput {
+ my ($self, $type, $name, $value, $project, $jobset) = @_;
+ return undef if $type ne "giteapulls";
+ # TODO Allow filtering of some kind here?
+ (my $domain, my $owner, my $repo) = split ' ', $value;
+ my $auth = $self->{config}->{gitea_authorization}->{$owner};
+ my %pulls;
+ my $ua = LWP::UserAgent->new();
+ _iterate("https://$domain/api/v1/repos/$owner/$repo/issues?types=pulls&per_page=100", 1, $auth, \%pulls, $ua);
+ my $tempdir = File::Temp->newdir("gitea-pulls" . "XXXXX", TMPDIR => 1);
+ my $filename = "$tempdir/gitea-pulls.json";
+
+ open(my $fh, ">", $filename) or die "Cannot open $filename for writing: $!";
+ print $fh JSON->new->utf8->canonical->encode(\%pulls);
+ close $fh;
+
+ my $storePath = trim(`nix-store --add "$filename"`
+ or die "cannot copy path $filename to the Nix store.\n");
+ chomp $storePath;
+ my $timestamp = time;
+ return { storePath => $storePath, revision => strftime "%Y%m%d%H%M%S", gmtime($timestamp) };
+}
+
+1;
--
2.46.0

View file

@ -0,0 +1,27 @@
From 97e90672d88b5d9fd1d424d3360a36d3763efcc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Sat, 23 Dec 2023 10:43:51 +0100
Subject: [PATCH 2/8] unrestrict eval
---
src/hydra-eval-jobs/hydra-eval-jobs.cc | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/hydra-eval-jobs/hydra-eval-jobs.cc b/src/hydra-eval-jobs/hydra-eval-jobs.cc
index 5adea42b..1b71dddd 100644
--- a/src/hydra-eval-jobs/hydra-eval-jobs.cc
+++ b/src/hydra-eval-jobs/hydra-eval-jobs.cc
@@ -321,10 +321,6 @@ int main(int argc, char * * argv)
/* FIXME: The build hook in conjunction with import-from-derivation is causing "unexpected EOF" during eval */
settings.builders = "";
- /* Prevent access to paths outside of the Nix search path and
- to the environment. */
- evalSettings.restrictEval = true;
-
/* When building a flake, use pure evaluation (no access to
'getEnv', 'currentSystem' etc. */
evalSettings.pureEval = pureEval;
--
2.46.0

View file

@ -0,0 +1,28 @@
From bb1a768327582fda0abd28b7272bb03bc8cbdeed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Wed, 4 Sep 2024 09:52:45 +0200
Subject: [PATCH 3/8] unlimit output
---
src/hydra-queue-runner/build-remote.cc | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/hydra-queue-runner/build-remote.cc b/src/hydra-queue-runner/build-remote.cc
index 1cabd291..ed737df9 100644
--- a/src/hydra-queue-runner/build-remote.cc
+++ b/src/hydra-queue-runner/build-remote.cc
@@ -566,11 +566,6 @@ void State::buildRemote(ref<Store> destStore,
size_t totalNarSize = 0;
auto infos = build_remote::queryPathInfos(conn, *localStore, outputs, totalNarSize);
- if (totalNarSize > maxOutputSize) {
- result.stepStatus = bsNarSizeLimitExceeded;
- return;
- }
-
/* Copy each path. */
printMsg(lvlDebug, "copying outputs of %s from %s (%d bytes)",
localStore->printStorePath(step->drvPath), machine->sshName, totalNarSize);
--
2.46.0

View file

@ -0,0 +1,65 @@
From b9622a0dcd4de4e44df4fa8dded0b8c25226c7a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Wed, 4 Sep 2024 09:54:13 +0200
Subject: [PATCH 4/8] remove pr number from github job name
---
src/lib/Hydra/Plugin/GithubStatus.pm | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/src/lib/Hydra/Plugin/GithubStatus.pm b/src/lib/Hydra/Plugin/GithubStatus.pm
index fe791533..075301fd 100644
--- a/src/lib/Hydra/Plugin/GithubStatus.pm
+++ b/src/lib/Hydra/Plugin/GithubStatus.pm
@@ -38,15 +38,14 @@ sub common {
my $ua = LWP::UserAgent->new();
foreach my $conf (@config) {
- next unless $jobName =~ /^$conf->{jobs}$/;
# Don't send out "pending" status updates if the build is already finished
next if !$finished && $build->finished == 1;
- my $contextTrailer = $conf->{excludeBuildFromContext} ? "" : (":" . $build->id);
- my $github_job_name = $jobName =~ s/-pr-\d+//r;
+ my $contextTrailer = "";
+ my $github_job_name = $jobName =~ s/-?pr-?\d+//r;
my $extendedContext = $conf->{context} // "continuous-integration/hydra:" . $jobName . $contextTrailer;
my $shortContext = $conf->{context} // "ci/hydra:" . $github_job_name . $contextTrailer;
- my $context = $conf->{useShortContext} ? $shortContext : $extendedContext;
+ my $context = $shortContext;
my $body = encode_json(
{
state => $finished ? toGithubState($build->buildstatus) : "pending",
@@ -103,17 +102,13 @@ sub common {
print STDERR "Can't parse flake, skipping GitHub status update\n";
}
} else {
- foreach my $input (@inputs) {
- my $i = $eval->jobsetevalinputs->find({ name => $input, altnr => 0 });
- if (! defined $i) {
- print STDERR "Evaluation $eval doesn't have input $input\n";
- }
- next unless defined $i;
- my $uri = $i->uri;
- my $rev = $i->revision;
- $uri =~ m![:/]([^/]+)/([^/]+?)(?:.git)?$!;
- $sendStatus->($input, $1, $2, $rev);
- }
+ next unless defined ($eval->jobsetevalinputs->find({ name => "github_input" }));
+ my $input = $eval->jobsetevalinputs->find({ name => "github_input" })->value;
+ my $repoOwner = $eval->jobsetevalinputs->find({ name => "github_repo_owner" })->value;
+ my $repoName = $eval->jobsetevalinputs->find({ name => "github_repo_name" })->value;
+ my $i = $eval->jobsetevalinputs->find({ name => $input, altnr => 0 });
+ my $rev = $i->revision;
+ $sendStatus->($input, $repoOwner, $repoName, $rev);
}
}
}
@@ -143,3 +138,4 @@ sub cachedBuildFinished {
}
1;
+
--
2.46.0

View file

@ -0,0 +1,25 @@
From dfb85165f6f4c312a7521564100c6a4166645f32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Wed, 4 Sep 2024 10:19:35 +0200
Subject: [PATCH 5/8] use pulls instead of issues
---
src/lib/Hydra/Plugin/GiteaPulls.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/Hydra/Plugin/GiteaPulls.pm b/src/lib/Hydra/Plugin/GiteaPulls.pm
index dda50f8d..48ae6e34 100644
--- a/src/lib/Hydra/Plugin/GiteaPulls.pm
+++ b/src/lib/Hydra/Plugin/GiteaPulls.pm
@@ -40,7 +40,7 @@ sub fetchInput {
my $auth = $self->{config}->{gitea_authorization}->{$owner};
my %pulls;
my $ua = LWP::UserAgent->new();
- _iterate("https://$domain/api/v1/repos/$owner/$repo/issues?types=pulls&per_page=100", 1, $auth, \%pulls, $ua);
+ _iterate("https://$domain/api/v1/repos/$owner/$repo/pulls?types=pulls&per_page=100", 1, $auth, \%pulls, $ua);
my $tempdir = File::Temp->newdir("gitea-pulls" . "XXXXX", TMPDIR => 1);
my $filename = "$tempdir/gitea-pulls.json";
--
2.46.0

View file

@ -0,0 +1,25 @@
From 2ddff52ddaae5cf301112581589ddc6df968d2f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Wed, 4 Sep 2024 10:20:22 +0200
Subject: [PATCH 6/8] only list open prs
---
src/lib/Hydra/Plugin/GiteaPulls.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/Hydra/Plugin/GiteaPulls.pm b/src/lib/Hydra/Plugin/GiteaPulls.pm
index 48ae6e34..70e88861 100644
--- a/src/lib/Hydra/Plugin/GiteaPulls.pm
+++ b/src/lib/Hydra/Plugin/GiteaPulls.pm
@@ -40,7 +40,7 @@ sub fetchInput {
my $auth = $self->{config}->{gitea_authorization}->{$owner};
my %pulls;
my $ua = LWP::UserAgent->new();
- _iterate("https://$domain/api/v1/repos/$owner/$repo/pulls?types=pulls&per_page=100", 1, $auth, \%pulls, $ua);
+ _iterate("https://$domain/api/v1/repos/$owner/$repo/pulls?status=open&per_page=100", 1, $auth, \%pulls, $ua);
my $tempdir = File::Temp->newdir("gitea-pulls" . "XXXXX", TMPDIR => 1);
my $filename = "$tempdir/gitea-pulls.json";
--
2.46.0

View file

@ -0,0 +1,28 @@
From 7f2197d5dbe5a576dc5e0478eac08a7bea84f018 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Charlotte=20=F0=9F=A6=9D=20Delenk?= <lotte@chir.rs>
Date: Wed, 4 Sep 2024 10:21:14 +0200
Subject: [PATCH 7/8] =?UTF-8?q?status=20=E2=86=92=20state?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/lib/Hydra/Plugin/GiteaPulls.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/Hydra/Plugin/GiteaPulls.pm b/src/lib/Hydra/Plugin/GiteaPulls.pm
index 70e88861..3b91fe8c 100644
--- a/src/lib/Hydra/Plugin/GiteaPulls.pm
+++ b/src/lib/Hydra/Plugin/GiteaPulls.pm
@@ -40,7 +40,7 @@ sub fetchInput {
my $auth = $self->{config}->{gitea_authorization}->{$owner};
my %pulls;
my $ua = LWP::UserAgent->new();
- _iterate("https://$domain/api/v1/repos/$owner/$repo/pulls?status=open&per_page=100", 1, $auth, \%pulls, $ua);
+ _iterate("https://$domain/api/v1/repos/$owner/$repo/pulls?state=open&per_page=100", 1, $auth, \%pulls, $ua);
my $tempdir = File::Temp->newdir("gitea-pulls" . "XXXXX", TMPDIR => 1);
my $filename = "$tempdir/gitea-pulls.json";
--
2.46.0

View file

@ -5,7 +5,9 @@
"devshell": [
"devshell"
],
"flake-compat": "flake-compat",
"flake-compat": [
"flake-compat"
],
"flake-parts": [
"flake-parts"
],
@ -30,7 +32,9 @@
"devshell": [
"devshell"
],
"flake-compat": "flake-compat_2",
"flake-compat": [
"flake-compat"
],
"flake-parts": [
"flake-parts"
],
@ -57,7 +61,9 @@
"devshell": [
"devshell"
],
"flake-compat": "flake-compat_3",
"flake-compat": [
"flake-compat"
],
"flake-parts": [
"flake-parts"
],
@ -243,51 +249,6 @@
}
},
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1696426674,
@ -303,22 +264,6 @@
"type": "github"
}
},
"flake-compat_5": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -339,28 +284,6 @@
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"hydra",
"nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1712014858,
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": [
@ -381,18 +304,38 @@
"type": "github"
}
},
"flake-utils_2": {
"flakey-profile": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"lastModified": 1712898590,
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
"owner": "lf-",
"repo": "flakey-profile",
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "lf-",
"repo": "flakey-profile",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
@ -441,21 +384,28 @@
},
"hydra": {
"inputs": {
"nix": "nix",
"nixpkgs": "nixpkgs_2"
"lix": [
"lix"
],
"nix-eval-jobs": [
"nix-eval-jobs"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1725467329,
"narHash": "sha256-hBdmRMlsqPQt9is1gWyPmhEV+faskFl8IcMtA21szCY=",
"owner": "DarkKirb",
"repo": "hydra",
"rev": "bc0aeb9a40ba566473b4b1e90f557d2d42072601",
"type": "github"
"lastModified": 1725317763,
"narHash": "sha256-NofyYPdyo1kKoaOKAI2RE5YmO4XgejuB7nEXKKTi8FQ=",
"ref": "refs/heads/main",
"rev": "ac37e44982802bc6a5558a1de381f7106b25449f",
"revCount": 4213,
"type": "git",
"url": "https://git.lix.systems/lix-project/hydra"
},
"original": {
"owner": "DarkKirb",
"repo": "hydra",
"type": "github"
"type": "git",
"url": "https://git.lix.systems/lix-project/hydra"
}
},
"impermanence": {
@ -496,20 +446,63 @@
"type": "github"
}
},
"libgit2": {
"flake": false,
"lix": {
"inputs": {
"flake-compat": [
"flake-compat"
],
"nix2container": [
"nix2container"
],
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression",
"pre-commit-hooks": [
"pre-commit-hooks"
]
},
"locked": {
"lastModified": 1697646580,
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
"owner": "libgit2",
"repo": "libgit2",
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
"type": "github"
"lastModified": 1725927421,
"narHash": "sha256-tiQ9OxiuTb/02xEU2ceo9MIxWBS5Rm/IAhv6QshH8K0=",
"ref": "refs/heads/main",
"rev": "cc183fdbc14ce105a5661d646983f791978b9d5c",
"revCount": 16233,
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
},
"original": {
"owner": "libgit2",
"repo": "libgit2",
"type": "github"
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
}
},
"lix-module": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"flakey-profile": [
"flakey-profile"
],
"lix": [
"lix"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1725836728,
"narHash": "sha256-dCbHCwqrzcHlEsRilMX+KM3IfRV46ieGqDyAD3GgCSs=",
"ref": "refs/heads/main",
"rev": "353b25f0b6da5ede15206d416345a2ec4195b5c8",
"revCount": 107,
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module"
}
},
"naersk": {
@ -533,31 +526,36 @@
"type": "github"
}
},
"nix": {
"nix-eval-jobs": {
"inputs": {
"flake-compat": "flake-compat_5",
"flake-parts": "flake-parts_2",
"libgit2": "libgit2",
"flake-parts": [
"flake-parts"
],
"lix": [
"lix"
],
"nix-github-actions": [
"nix-github-actions"
],
"nixpkgs": [
"hydra",
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression",
"pre-commit-hooks": "pre-commit-hooks"
"treefmt-nix": [
"treefmt-nix"
]
},
"locked": {
"lastModified": 1713874370,
"narHash": "sha256-gW1mO/CvsQQ5gvgiwzxsGhPFI/tx30NING+qgF5Do0s=",
"owner": "NixOS",
"repo": "nix",
"rev": "1c8150ac312b5f9ba1b3f6768ff43b09867e5883",
"type": "github"
"lastModified": 1723579251,
"narHash": "sha256-xnHtfw0gRhV+2S9U7hQwvp2klTy1Iv7FlMMO0/WiMVc=",
"ref": "refs/heads/main",
"rev": "42a160bce2fd9ffebc3809746bc80cc7208f9b08",
"revCount": 609,
"type": "git",
"url": "https://git.lix.systems/lix-project/nix-eval-jobs"
},
"original": {
"owner": "NixOS",
"ref": "2.22-maintenance",
"repo": "nix",
"type": "github"
"type": "git",
"url": "https://git.lix.systems/lix-project/nix-eval-jobs"
}
},
"nix-gaming": {
@ -568,7 +566,9 @@
"nixpkgs": [
"nixpkgs"
],
"umu": "umu"
"umu": [
"umu"
]
},
"locked": {
"lastModified": 1725759635,
@ -584,6 +584,49 @@
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1720066371,
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix2container": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1724996935,
"narHash": "sha256-njRK9vvZ1JJsP8oV2OgkBrpJhgQezI03S7gzskCcHos=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "fa6bb0a1159f55d071ba99331355955ae30b3401",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1725885300,
@ -654,22 +697,6 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1712848736,
"narHash": "sha256-CzZwhqyLlebljv1zFS2KWVH/3byHND0LfaO1jKsGuVo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1d6a23f11e44d0fb64b3237569b87658a9eb5643",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1725905123,
"narHash": "sha256-NrE4IWGLwfHxYQpb39Z4fMziRjq766Ep7DigGsb+D/s=",
@ -687,36 +714,29 @@
"pre-commit-hooks": {
"inputs": {
"flake-compat": [
"hydra",
"nix"
"flake-compat"
],
"flake-utils": "flake-utils_2",
"gitignore": [
"hydra",
"nix"
"gitignore"
],
"nixpkgs": [
"hydra",
"nix",
"nixpkgs"
],
"nixpkgs-stable": [
"hydra",
"nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1712897695,
"narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=",
"lastModified": 1725513492,
"narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8",
"repo": "git-hooks.nix",
"rev": "7570de7b9b504cfe92025dd1be797bf546f66528",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"repo": "git-hooks.nix",
"type": "github"
}
},
@ -751,23 +771,33 @@
"crane": "crane",
"devshell": "devshell",
"dns": "dns",
"flake-compat": "flake-compat_4",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils",
"flakey-profile": "flakey-profile",
"gitignore": "gitignore",
"gomod2nix": "gomod2nix",
"home-manager": "home-manager",
"hydra": "hydra",
"impermanence": "impermanence",
"lib-aggregate": "lib-aggregate",
"lix": "lix",
"lix-module": "lix-module",
"naersk": "naersk",
"nix-eval-jobs": "nix-eval-jobs",
"nix-gaming": "nix-gaming",
"nix-github-actions": "nix-github-actions",
"nix2container": "nix2container",
"nixos-hardware": "nixos-hardware",
"nixos-vscode-server": "nixos-vscode-server",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"riscv-overlay": "riscv-overlay",
"rust-overlay": "rust-overlay",
"sops-nix": "sops-nix",
"systems": "systems"
"systems": "systems",
"treefmt-nix": "treefmt-nix",
"umu": "umu"
}
},
"rust-overlay": {
@ -828,27 +858,44 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1725271838,
"narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"umu": {
"inputs": {
"nixpkgs": [
"nix-gaming",
"nixpkgs"
]
},
"locked": {
"dir": "packaging/nix",
"lastModified": 1725408497,
"narHash": "sha256-wyJPWwHzHpFwc9XP9nM/Lpbvahusp2NcUtWXlErGi1g=",
"lastModified": 1725946017,
"narHash": "sha256-9MoUjSWWgXDUqVz/tJo3DqW8WFbsXqO9JuQPzRWnzuI=",
"ref": "refs/heads/main",
"rev": "2d3c948a51bc1d2880a90bf985947f9afc89e8d1",
"revCount": 713,
"submodules": true,
"rev": "3af25f44079f4a09ccd618501bb72ab368d033d3",
"revCount": 714,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
},
"original": {
"dir": "packaging/nix",
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
}

View file

@ -7,18 +7,21 @@ rec {
admin-fe = {
url = "github:DarkKirb/admin-fe";
inputs.devshell.follows = "devshell";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-parts.follows = "flake-parts";
#inputs.nixpkgs.follows = "nixpkgs";
};
akkoma = {
url = "github:DarkKirb/akkoma";
inputs.devshell.follows = "devshell";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-parts.follows = "flake-parts";
inputs.nixpkgs.follows = "nixpkgs";
};
akkoma-fe = {
url = "github:DarkKirb/akkoma-fe";
inputs.devshell.follows = "devshell";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-parts.follows = "flake-parts";
inputs.nixpkgs.follows = "nixpkgs";
};
@ -72,6 +75,13 @@ rec {
url = "github:numtide/flake-utils";
inputs.systems.follows = "systems";
};
flakey-profile = {
url = "github:lf-/flakey-profile";
};
gitignore = {
url = "github:hercules-ci/gitignore.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
gomod2nix = {
url = "github:DarkKirb/gomod2nix";
inputs.nixpkgs.follows = "nixpkgs";
@ -82,8 +92,10 @@ rec {
inputs.nixpkgs.follows = "nixpkgs";
};
hydra = {
url = "github:DarkKirb/hydra";
#inputs.nixpkgs.follows = "nixpkgs";
url = "git+https://git.lix.systems/lix-project/hydra";
inputs.lix.follows = "lix";
inputs.nix-eval-jobs.follows = "nix-eval-jobs";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence = {
url = "github:nix-community/impermanence";
@ -93,14 +105,46 @@ rec {
inputs.flake-utils.follows = "flake-utils";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
lix = {
url = "git+https://git.lix.systems/lix-project/lix";
inputs.flake-compat.follows = "flake-compat";
inputs.nix2container.follows = "nix2container";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs.flake-utils.follows = "flake-utils";
inputs.flakey-profile.follows = "flakey-profile";
inputs.lix.follows = "lix";
inputs.nixpkgs.follows = "nixpkgs";
};
naersk = {
url = "github:nix-community/naersk/master";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-eval-jobs = {
url = "git+https://git.lix.systems/lix-project/nix-eval-jobs";
inputs.flake-parts.follows = "flake-parts";
inputs.lix.follows = "lix";
inputs.nix-github-actions.follows = "nix-github-actions";
inputs.nixpkgs.follows = "nixpkgs";
inputs.treefmt-nix.follows = "treefmt-nix";
};
nix-gaming = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
inputs.umu.follows = "umu";
};
nix-github-actions = {
url = "github:nix-community/nix-github-actions";
inputs.nixpkgs.follows = "nixpkgs";
};
nix2container = {
url = "github:nlewo/nix2container";
inputs.flake-utils.follows = "flake-utils";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixos-vscode-server = {
@ -109,6 +153,13 @@ rec {
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "github:NixOS/nixpkgs";
pre-commit-hooks = {
url = "github:cachix/git-hooks.nix";
inputs.flake-compat.follows = "flake-compat";
inputs.gitignore.follows = "gitignore";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
riscv-overlay = {
url = "github:DarkKirb/riscv-overlay";
inputs.nixpkgs.follows = "nixpkgs";
@ -123,6 +174,14 @@ rec {
inputs.nixpkgs-stable.follows = "nixpkgs";
};
systems.url = "github:nix-systems/default";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
umu = {
url = "git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
@ -130,6 +189,7 @@ rec {
nixpkgs,
sops-nix,
home-manager,
lix-module,
...
} @ args: let
systems = [
@ -172,6 +232,7 @@ rec {
overlays = [
args.gomod2nix.overlays.default
self.overlays.${system}
args.hydra.overlays.default
];
config.allowUnfree = true;
config.permittedInsecurePackages = [
@ -271,6 +332,7 @@ rec {
home-manager.extraSpecialArgs = args // {inherit system;};
})
(import utils/link-input.nix args)
lix-module.nixosModules.default
];
};
})

View file

@ -5,7 +5,7 @@
...
}:
with lib; let
cfg = config.services.hydra;
cfg = config.services.hydra-dev;
baseDir = "/var/lib/hydra";
@ -15,7 +15,7 @@ with lib; let
in {
###### interface
options = {
services.hydra = {
services.hydra-dev = {
giteaTokenFile = mkOption {
type = with types; str;
default = "";