1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-08-02 12:14:46 +02:00

add phpunit 13

This commit is contained in:
Robin Appelman 2026-07-14 00:13:17 +02:00
commit 44da124f75
2 changed files with 106 additions and 107 deletions

View file

@ -38,10 +38,10 @@
nushell, nushell,
nix2container, nix2container,
buildEnv, buildEnv,
}: }: let
let
inherit (builtins) toString compareVersions; inherit (builtins) toString compareVersions;
inherit (lib) inherit
(lib)
readFile readFile
getExe getExe
concatStringsSep concatStringsSep
@ -53,7 +53,7 @@ let
version = (fromTOML (readFile ../../Cargo.toml)).package.version; version = (fromTOML (readFile ../../Cargo.toml)).package.version;
phpVersion = concatStringsSep "." (take 2 (splitString "." php.version)); phpVersion = concatStringsSep "." (take 2 (splitString "." php.version));
phpEnv = callPackage ./php.nix { inherit debug php; }; phpEnv = callPackage ./php.nix {inherit debug php;};
bootstrap = writers.writeNuBin "bootstrap" (readFile ./bootstrap); bootstrap = writers.writeNuBin "bootstrap" (readFile ./bootstrap);
shadowSetupScript = writeShellApplication { shadowSetupScript = writeShellApplication {
@ -61,7 +61,7 @@ let
text = dockerTools.shadowSetup; text = dockerTools.shadowSetup;
}; };
baseDirs = runCommand "tmp-dir" { } '' baseDirs = runCommand "tmp-dir" {} ''
mkdir -p $out/tmp mkdir -p $out/tmp
mkdir -p $out/var/cache/nginx mkdir -p $out/var/cache/nginx
mkdir -p $out/var/log/nginx mkdir -p $out/var/log/nginx
@ -73,10 +73,9 @@ let
mkdir -p $out/conf mkdir -p $out/conf
mkdir -p $out/var/spool mkdir -p $out/var/spool
''; '';
configs = callPackage ./configs.nix { }; configs = callPackage ./configs.nix {};
scripts = callPackage ./scripts.nix { }; scripts = callPackage ./scripts.nix {};
phpunitUnwrapped = phpunitUnwrapped = majorVersion:
majorVersion:
callPackage ./phpunit.nix { callPackage ./phpunit.nix {
inherit majorVersion; inherit majorVersion;
php = phpEnv; php = phpEnv;
@ -84,7 +83,7 @@ let
phpunit = writeShellApplication { phpunit = writeShellApplication {
name = "phpunit"; name = "phpunit";
runtimeInputs = [ jq ]; runtimeInputs = [jq];
text = '' text = ''
MAJOR=$(jq -r 'first(.require."phpunit/phpunit" | scan("[[:digit:]]+"))' vendor-bin/phpunit/composer.json) MAJOR=$(jq -r 'first(.require."phpunit/phpunit" | scan("[[:digit:]]+"))' vendor-bin/phpunit/composer.json)
case "$MAJOR" in case "$MAJOR" in
@ -100,6 +99,9 @@ let
12) 12)
PKG=${phpunitUnwrapped "12"} PKG=${phpunitUnwrapped "12"}
;; ;;
13)
PKG=${phpunitUnwrapped "13"}
;;
*) *)
PKG=${phpunitUnwrapped "10"} PKG=${phpunitUnwrapped "10"}
;; ;;
@ -108,11 +110,11 @@ let
''; '';
}; };
certificates = runCommand "scripts" { } '' certificates = runCommand "scripts" {} ''
mkdir -p $out mkdir -p $out
cp -r ${../../certificates} $out/certificates cp -r ${../../certificates} $out/certificates
''; '';
clamav-data = runCommand "scripts" { } '' clamav-data = runCommand "scripts" {} ''
mkdir -p $out/etc mkdir -p $out/etc
mkdir -p $out/var/lib/clamav mkdir -p $out/var/lib/clamav
cp ${data/clamav/daily.cvd} $out/var/lib/clamav/daily.cvd cp ${data/clamav/daily.cvd} $out/var/lib/clamav/daily.cvd
@ -152,7 +154,8 @@ let
clamav-data clamav-data
]; ];
phpPackages = [ phpPackages =
[
phpEnv phpEnv
phpEnv.packages.composer phpEnv.packages.composer
phpunit phpunit
@ -169,13 +172,10 @@ let
]; ];
# https://blog.eigenvalue.net/2023-nix2container-everything-once/ # https://blog.eigenvalue.net/2023-nix2container-everything-once/
foldImageLayers = foldImageLayers = let
let mergeToLayer = priorLayers: component:
mergeToLayer =
priorLayers: component:
assert builtins.isList priorLayers; assert builtins.isList priorLayers;
assert builtins.isAttrs component; assert builtins.isAttrs component; let
let
layer = nix2container.buildLayer ( layer = nix2container.buildLayer (
component component
// { // {
@ -183,11 +183,11 @@ let
} }
); );
in in
priorLayers ++ [ layer ]; priorLayers ++ [layer];
in in
layers: lib.foldl mergeToLayer [ ] layers; layers: lib.foldl mergeToLayer [] layers;
in in
nix2container.buildImage { nix2container.buildImage {
name = "icewind1991/haze"; name = "icewind1991/haze";
tag = phpVersion; tag = phpVersion;
layers = foldImageLayers [ layers = foldImageLayers [
@ -208,7 +208,7 @@ nix2container.buildImage {
copyToRoot = buildEnv { copyToRoot = buildEnv {
name = "php"; name = "php";
paths = phpPackages; paths = phpPackages;
pathsToLink = [ "/bin" ]; pathsToLink = ["/bin"];
}; };
} }
{ {
@ -235,7 +235,7 @@ nix2container.buildImage {
} }
]; ];
config = { config = {
Cmd = [ (getExe bootstrap) ]; Cmd = [(getExe bootstrap)];
Env = [ Env = [
"EDITOR=hx" "EDITOR=hx"
"WEBROOT=/var/www/html" "WEBROOT=/var/www/html"
@ -246,4 +246,4 @@ nix2container.buildImage {
"nl.icewind.haze.version" = toString version; "nl.icewind.haze.version" = toString version;
}; };
}; };
} }

View file

@ -1,15 +1,9 @@
{ {
lib, lib,
fetchFromGitHub, fetchFromGitHub,
nix-update-script,
php, php,
majorVersion, majorVersion,
phpunit,
testers,
versionCheckHook,
}: let }: let
inherit (lib) concatStringsSep splitString take;
phpVersion = concatStringsSep "." (take 2 (splitString "." php.version));
versions = { versions = {
"9" = { "9" = {
version = "9.6.25"; version = "9.6.25";
@ -31,6 +25,11 @@
hash = "sha256-D5WI1kv05L8X3Gfw/MCxGdIcqWyWJg68GL9I24z/zIY="; hash = "sha256-D5WI1kv05L8X3Gfw/MCxGdIcqWyWJg68GL9I24z/zIY=";
vendorHash = "sha256-DBzpwDVCOaw+5rXGLiCHBhKg+kibvBD1XDNFMte3Heo="; vendorHash = "sha256-DBzpwDVCOaw+5rXGLiCHBhKg+kibvBD1XDNFMte3Heo=";
}; };
"13" = {
version = "13.2.4";
hash = "sha256-TL6KYumNXUQ2nvkw3s/0UtT3CVw1YZfAmaCn8FHznrg=";
vendorHash = "sha256-Vlpjra9pcqhEy6fe6he6gsivQEmaHRgspy14DwCEOW4=";
};
}; };
in in
php.buildComposerProject2 (finalAttrs: { php.buildComposerProject2 (finalAttrs: {