Compare commits
4 Commits
a00d2ec853
...
feature/hy
Author | SHA1 | Date | |
---|---|---|---|
33820abfc0 | |||
e9837be2b1 | |||
2cc162404b | |||
8d22f15781 |
@@ -23,7 +23,9 @@ def build_output(path: str, output: str) -> str | None:
|
||||
"""
|
||||
logger.info(f"build {output}")
|
||||
logger.debug(f"outputting to {OUTPUT_DIR}/{output}.nixoutput")
|
||||
out = bash_wrapper(f"nix build {path}#{output} -o {OUTPUT_DIR}/{output}.nixoutput --accept-flake-config")
|
||||
out = bash_wrapper(
|
||||
f"nix build {path}#{output} -o {OUTPUT_DIR}/{output}.nixoutput --accept-flake-config"
|
||||
)
|
||||
logger.debug("output")
|
||||
logger.debug(out[0])
|
||||
logger.debug("error")
|
||||
|
@@ -53,7 +53,9 @@ def get_derivations_from_check(nix_path: str, path_to_flake: str) -> list[str]:
|
||||
:param path_to_flake: path to flake to be checked
|
||||
:returns a list of all valid derivations in the flake
|
||||
"""
|
||||
flake_check = bash_wrapper(f"{nix_path} flake check --verbose --keep-going --accept-flake-config", path=path_to_flake)
|
||||
flake_check = bash_wrapper(
|
||||
f"{nix_path} flake check --verbose --keep-going --accept-flake-config", path=path_to_flake
|
||||
)
|
||||
if flake_check[2] != 0:
|
||||
logger.warning(
|
||||
"nix flake check returned non-zero exit code, collecting all available outputs"
|
||||
@@ -71,7 +73,9 @@ def get_derivations_from_check(nix_path: str, path_to_flake: str) -> list[str]:
|
||||
return derivations
|
||||
|
||||
|
||||
def get_derivations(path_to_flake: str, *, allow_import_from_derivation: False = False) -> list[str]:
|
||||
def get_derivations(
|
||||
path_to_flake: str, *, allow_import_from_derivation: False = False
|
||||
) -> list[str]:
|
||||
"""Gets all derivations present in a flake.
|
||||
|
||||
:param path_to_flake: path to flake to be checked
|
||||
@@ -83,7 +87,7 @@ def get_derivations(path_to_flake: str, *, allow_import_from_derivation: False =
|
||||
if nix_path is None:
|
||||
status_msg = "nix is not available in the PATH, please verify that it is installed"
|
||||
raise RuntimeError(status_msg)
|
||||
cmd = f"{nix_path} flake show --json --accept-flake-path"
|
||||
cmd = f"{nix_path} flake show --json --accept-flake-config --all-systems"
|
||||
cmd += " --allow-import-from-derivation" if allow_import_from_derivation else ""
|
||||
flake_show = bash_wrapper(cmd, path=path_to_flake)
|
||||
if flake_show[2] != 0:
|
||||
|
@@ -99,7 +99,8 @@ def build_or_eval(args: Namespace) -> None:
|
||||
"""
|
||||
flake_path = args.flake_path
|
||||
derivations, hydra_jobs = partition(
|
||||
lambda s: s.startswith("hydraJobs"), get_derivations(flake_path, args["allow-import-from-derivation"])
|
||||
lambda s: s.startswith("hydraJobs"),
|
||||
get_derivations(flake_path, allow_import_from_derivation=args.allow_import_from_derivation),
|
||||
)
|
||||
derivations, hydra_jobs = list(derivations), list(hydra_jobs)
|
||||
logger.info(f"derivations: {list(derivations)}")
|
||||
|
@@ -19,7 +19,6 @@ let
|
||||
|
||||
prs = readJSONFile pulls;
|
||||
refs = readJSONFile branches;
|
||||
repo = "RAD-Development/flake-update-diff";
|
||||
|
||||
# template for creating a job
|
||||
makeJob =
|
||||
@@ -28,6 +27,7 @@ let
|
||||
keepnr ? 3,
|
||||
description,
|
||||
flake,
|
||||
enabled ? 1,
|
||||
}:
|
||||
{
|
||||
inherit
|
||||
@@ -35,36 +35,39 @@ let
|
||||
flake
|
||||
schedulingshares
|
||||
keepnr
|
||||
enabled
|
||||
;
|
||||
enabled = 1;
|
||||
type = 1;
|
||||
hidden = false;
|
||||
checkinterval = 300; # every 6 months
|
||||
checkinterval = 300; # every 5 minutes
|
||||
enableemail = false;
|
||||
emailoverride = "";
|
||||
};
|
||||
|
||||
# Create a hydra job for a branch
|
||||
giteaHost = "ssh://gitea@nayeonie.com:2222";
|
||||
repo = "ahuston-0/flake-update-diff";
|
||||
# # Create a hydra job for a branch
|
||||
jobOfRef =
|
||||
name:
|
||||
{ ref, ... }:
|
||||
if (builtins.match "^refs/heads/(.*)$" ref) == null then
|
||||
if ((builtins.match "^refs/heads/(.*)$" ref) == null) then
|
||||
null
|
||||
else
|
||||
{
|
||||
name = builtins.replaceStrings [ "/" ] [ "-" ] "branch-${name}";
|
||||
value = makeJob {
|
||||
description = "Branch ${name}";
|
||||
flake = "git+ssh://git@github.com/${repo}?ref=${ref}";
|
||||
flake = "git+${giteaHost}/${repo}?ref=${ref}";
|
||||
};
|
||||
};
|
||||
|
||||
# Create a hydra job for a PR
|
||||
jobOfPR = id: info: {
|
||||
name = "pr-${id}";
|
||||
name = if info.draft then "draft-${id}" else "pr-${id}";
|
||||
value = makeJob {
|
||||
description = "PR ${id}: ${info.title}";
|
||||
flake = "git+ssh://git@github.com/${info.head.repo.full_name}?ref=${info.head.ref}";
|
||||
flake = "git+${giteaHost}/${repo}?ref=${info.head.ref}";
|
||||
enabled = info.state == "open";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -74,7 +77,7 @@ let
|
||||
# wrapper function for reading json from file
|
||||
readJSONFile = f: builtins.fromJSON (builtins.readFile f);
|
||||
# remove null values from a set, in-case of branches that don't exist
|
||||
mapFilter = f: l: builtins.filter (x: x != null) (map f l);
|
||||
mapFilter = f: l: builtins.filter (x: (x != null)) (map f l);
|
||||
|
||||
# Create job set from PRs and branches
|
||||
jobs = makeSpec (
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"enabled": 1,
|
||||
"hidden": false,
|
||||
"description": "Flake update diff tool",
|
||||
"description": "Flake Update Diff Tool (flupdt)",
|
||||
"nixexprinput": "nixexpr",
|
||||
"nixexprpath": "hydra/jobsets.nix",
|
||||
"checkinterval": 60,
|
||||
@@ -12,23 +12,23 @@
|
||||
"type": 0,
|
||||
"inputs": {
|
||||
"nixexpr": {
|
||||
"value": "https://github.com/RAD-Development/flake-update-diff main",
|
||||
"value": "ssh://gitea@nayeonie.com:2222/ahuston-0/flake-update-diff.git main",
|
||||
"type": "git",
|
||||
"emailresponsible": false
|
||||
},
|
||||
"nixpkgs": {
|
||||
"value": "https://github.com/NixOS/nixpkgs nixos-unstable-small",
|
||||
"value": "https://github.com/NixOS/nixpkgs nixos-unstable",
|
||||
"type": "git",
|
||||
"emailresponsible": false
|
||||
},
|
||||
"pulls": {
|
||||
"type": "githubpulls",
|
||||
"value": "RAD-Development flake-update-diff",
|
||||
"type": "giteapulls",
|
||||
"value": "nayeonie.com ahuston-0 flake-update-diff https",
|
||||
"emailresponsible": false
|
||||
},
|
||||
"branches": {
|
||||
"type": "github_refs",
|
||||
"value": "RAD-Development flake-update-diff heads -",
|
||||
"type": "gitea_refs",
|
||||
"value": "nayeonie.com ahuston-0 flake-update-diff heads https -",
|
||||
"emailresponsible": false
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user